@galacticcouncil/xc-cfg 2.0.0 → 2.1.0-pr344-0cf6035
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.cjs +1 -1
- package/build/index.mjs +1 -1
- package/package.json +4 -4
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var ls=Object.defineProperty;var Dr=Object.getOwnPropertyDescriptor;var Ir=Object.getOwnPropertyNames;var Rr=Object.prototype.hasOwnProperty;var $t=(t,e)=>{for(var n in e)ls(t,n,{get:e[n],enumerable:!0})},Lr=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ir(e))!Rr.call(t,o)&&o!==n&&ls(t,o,{get:()=>e[o],enumerable:!(s=Dr(e,o))||s.enumerable});return t};var Hr=t=>Lr(ls({},"__esModule",{value:!0}),t);var M0={};$t(M0,{HydrationConfigService:()=>ms,assetsMap:()=>no,builders:()=>Ws,chainsMap:()=>bo,clients:()=>Ms,dex:()=>to,routesMap:()=>kr,tags:()=>Us,validations:()=>vr});module.exports=Hr(M0);var g=require("@galacticcouncil/xc-core"),ie=new g.Asset({key:"aave",originSymbol:"AAVE"}),ps=new g.Asset({key:"ajun",originSymbol:"AJUN"}),ce=new g.Asset({key:"apyusd",originSymbol:"apyUSD"}),L=new g.Asset({key:"astr",originSymbol:"ASTR"}),D=new g.Asset({key:"bnc",originSymbol:"BNC"}),fs=new g.Asset({key:"bsx",originSymbol:"BSX"}),me=new g.Asset({key:"cfg_new",originSymbol:"CFG"}),hs=new g.Asset({key:"cru",originSymbol:"CRU"}),at=new g.Asset({key:"dai",originSymbol:"DAI"}),ht=new g.Asset({...at,key:"dai_wh"}),w=new g.Asset({key:"dot",originSymbol:"DOT"}),_=new g.Asset({key:"eth",originSymbol:"ETH"}),ue=new g.Asset({key:"ena",originSymbol:"ENA"}),Ze=new g.Asset({key:"eurc",originSymbol:"EURC"}),rt=new g.Asset({...Ze,key:"eurc_wh"}),Ie=new g.Asset({key:"glmr",originSymbol:"GLMR"}),Jt=new g.Asset({key:"hdx",originSymbol:"HDX"}),M=new g.Asset({key:"ibtc",originSymbol:"IBTC"}),Te=new g.Asset({key:"intr",originSymbol:"INTR"}),Re=new g.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),T=new g.Asset({key:"ksm",originSymbol:"KSM"}),de=new g.Asset({key:"ldo",originSymbol:"LDO"}),le=new g.Asset({key:"lbtc",originSymbol:"LBTC"}),we=new g.Asset({key:"ewt",originSymbol:"EWT"}),pe=new g.Asset({key:"link",originSymbol:"LINK"}),H=new g.Asset({key:"myth",originSymbol:"MYTH"}),Oe=new g.Asset({key:"neuro",originSymbol:"NEURO"}),Fe=new g.Asset({key:"pen",originSymbol:"PEN"}),fe=new g.Asset({key:"paxg",originSymbol:"PAXG"}),Le=new g.Asset({key:"prime",originSymbol:"PRIME"}),he=new g.Asset({key:"sky",originSymbol:"SKY"}),Ce=new g.Asset({key:"sol",originSymbol:"SOL"}),Se=new g.Asset({key:"sui",originSymbol:"SUI"}),ye=new g.Asset({key:"susde",originSymbol:"sUSDe"}),We=new g.Asset({key:"susds",originSymbol:"sUSDS"}),yt=new g.Asset({...We,key:"susds_wh"}),be=new g.Asset({key:"tbtc",originSymbol:"tBTC"}),ge=new g.Asset({key:"trac",originSymbol:"TRAC"}),Ue=new g.Asset({key:"unq",originSymbol:"UNQ"}),A=new g.Asset({key:"usdt",originSymbol:"USDT"}),bt=new g.Asset({...A,key:"usdt_wh"}),it=new g.Asset({...A,key:"usdt_eth"}),v=new g.Asset({key:"usdc",originSymbol:"USDC"}),gt=new g.Asset({...v,key:"usdc_wh"}),ct=new g.Asset({...v,key:"usdc_eth"}),q=new g.Asset({key:"vastr",originSymbol:"vASTR"}),z=new g.Asset({key:"vdot",originSymbol:"vDOT"}),mt=new g.Asset({key:"weth",originSymbol:"WETH"}),ut=new g.Asset({...mt,key:"weth_wh"}),Ke=new g.Asset({key:"wbtc",originSymbol:"WBTC"}),xt=new g.Asset({...Ke,key:"wbtc_wh"}),xe=new g.Asset({key:"wsteth",originSymbol:"wstETH"}),dt=new g.Asset({key:"wud",originSymbol:"WUD"}),Vr=[ie,ps,ce,L,fs,me,hs,D,at,ht,w,ue,Ze,rt,_,Ie,Jt,M,Te,T,de,le,we,Re,pe,H,Oe,fe,Fe,Le,he,Ce,Se,ye,We,yt,ge,be,Ue,v,gt,ct,A,bt,it,q,z,Ke,xt,mt,ut,xe,dt],no=new Map(Vr.map(t=>[t.key,t]));var Yt=require("@galacticcouncil/xc-core");var so=require("viem/chains"),Qt=new Yt.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:_,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:Ze,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:v,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Yt.EvmBalanceType.Erc20,ecosystem:Yt.ChainEcosystem.Ethereum,evmChain:so.base,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[Ze.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});var Rt=require("@galacticcouncil/xc-core");var oo=require("viem/chains"),E=new Rt.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:_,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:ie,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ce,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:me,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:mt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:at,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:ue,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:ye,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:We,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:be,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Ke,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:le,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:v,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:A,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:de,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:pe,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:fe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:he,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:ge,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:xe,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Rt.EvmBalanceType.Erc20,balanceOverrides:{[_.key]:Rt.EvmBalanceType.Native},ecosystem:Rt.ChainEcosystem.Ethereum,evmChain:oo.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",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[at.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[We.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[v.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[A.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[Ke.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[mt.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[_.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var ao=[Qt,E];var He=require("@galacticcouncil/xc-core");var ro={assetsData:[{asset:w,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:A,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:v,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:dt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:H,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:T,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:He.SubstrateBalanceType.Assets,balanceOverrides:{[w.key]:He.SubstrateBalanceType.System,[T.key]:He.SubstrateBalanceType.ForeignAssets,[H.key]:He.SubstrateBalanceType.ForeignAssets},min:He.SubstrateMinType.Assets,ecosystem:He.ChainEcosystem.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},B=new He.Parachain({...ro,key:"assethub",name:"AssetHub Polkadot"}),At=new He.Parachain({...ro,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});var Lt=require("@galacticcouncil/xc-core");var ee=new Lt.Parachain({assetsData:[{asset:L,xcmLocation:{parents:0,interior:"Here"}},{asset:w,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:A,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:v,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:D,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ie,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Te,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,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"}}]}}}],balance:Lt.SubstrateBalanceType.Assets,balanceOverrides:{[L.key]:Lt.SubstrateBalanceType.System},ecosystem:Lt.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Ht=require("@galacticcouncil/xc-core");var Nr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],V=new Ht.Parachain({assetsData:[{asset:D,id:{Native:D.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,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:A,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:v,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:L,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:Ie,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Ht.SubstrateBalanceType.Tokens,balanceOverrides:{[D.key]:Ht.SubstrateBalanceType.System},ecosystem:Ht.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Nr});var Vt=require("@galacticcouncil/xc-core"),uo=require("viem");var co=require("@galacticcouncil/common"),mo=require("polkadot-api"),{isEvmAccount:Mr,H160:io}=co.h160,Pn=class{async toH160(e,n){if(Mr(e))return io.fromAccount(e);let s=io.fromSS58(e);if(n&&await this.isBound(n,s,e))return s;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,n,s){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(n);if(!a)return!1;let r=(0,mo.AccountId)().enc(s),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var Gr=new Pn,ys=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],bs=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],Or=(0,uo.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:ys,webSocket:bs},default:{http:ys,webSocket:bs}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),b=new Vt.EvmParachain({assetsData:[{asset:Jt,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:ie,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ps,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:D,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:me,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:hs,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:w,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ht,decimals:18,id:18,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f"}}]}}},{asset:_,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:ce,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:ue,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:Ie,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Te,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:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0xfcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd"}}]}}},{asset:Le,decimals:6,id:43,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x26759f460ee5f743ed66d27c8f2a5623bf39d53ed575955320661e6e13e0e3da"}}]}}},{asset:we,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:de,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:T,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:le,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:pe,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:fe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:H,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Oe,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Fe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:he,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Ce,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001"}}]}}},{asset:Se,decimals:9,id:1000753,min:.003,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:21},{GeneralKey:{length:32,data:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}]}}},{asset:ye,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:We,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:yt,decimals:18,id:1000745,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:be,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:ge,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ue,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:v,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:gt,decimals:6,id:21,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:rt,decimals:6,id:44,min:.014,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:30},{GeneralKey:{length:32,data:"0x00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42"}}]}}},{asset:ct,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:A,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:bt,decimals:6,id:23,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:it,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ke,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:xt,decimals:8,id:19,min:34e-8,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:mt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:ut,decimals:18,id:20,min:54e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:xe,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:dt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Vt.SubstrateBalanceType.Tokens,balanceOverrides:{[Jt.key]:Vt.SubstrateBalanceType.System},ecosystem:Vt.ChainEcosystem.Polkadot,evmChain:Or,evmResolver:Gr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[ht.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[rt.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Re.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Le.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Ce.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Se.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[yt.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[gt.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[bt.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[xt.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[ut.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:bs,rpcs:ys});var Zt=require("@galacticcouncil/xc-core");var wt=new Zt.Parachain({assetsData:[{asset:H,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Zt.SubstrateBalanceType.System,ecosystem:Zt.ChainEcosystem.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});var en=require("@galacticcouncil/xc-core");var tn=new en.Parachain({assetsData:[{asset:Oe,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:en.SubstrateBalanceType.System,ecosystem:en.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 Ct=require("@galacticcouncil/xc-core");var nn=new Ct.Parachain({assetsData:[{asset:Fe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Ct.SubstrateBalanceType.System,ecosystem:Ct.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Ct.XcmVersion.v3});var sn=require("@galacticcouncil/xc-core");var Wr={assetsData:[{asset:w,xcmLocation:{parents:0,interior:"Here"}}],balance:sn.SubstrateBalanceType.System,ecosystem:sn.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"},lo=new sn.Parachain({...Wr,key:"polkadot"});var on=require("@galacticcouncil/xc-core");var an=new on.Parachain({assetsData:[{asset:Ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:on.SubstrateBalanceType.System,ecosystem:on.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var kt=require("@galacticcouncil/xc-core");var rn=new kt.Parachain({assetsData:[{asset:we,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:kt.SubstrateBalanceType.System,ecosystem:kt.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",xcmVersion:kt.XcmVersion.v3});var po=[B,At,ee,V,b,tn,wt,nn,lo,an,rn];var Nt=require("@galacticcouncil/xc-core");var vt=new Nt.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:Ce,decimals:9},{asset:Re,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Le,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Nt.SolanaBalanceType.Token,balanceOverrides:{[Ce.key]:Nt.SolanaBalanceType.Native},ecosystem:Nt.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",ntt:{[Ce.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Re.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Le.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var fo=[vt];var cn=require("@galacticcouncil/xc-core");var mn=new cn.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Se,decimals:9}],balance:cn.SuiBalanceType.Native,ecosystem:cn.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[Se.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var ho=[mn];var lt=require("@galacticcouncil/xc-core");var qe=new lt.Parachain({assetsData:[{asset:T,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:w,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:A,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:lt.SubstrateBalanceType.Assets,balanceOverrides:{[T.key]:lt.SubstrateBalanceType.System},min:lt.SubstrateMinType.Assets,ecosystem:lt.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 un=require("@galacticcouncil/xc-core");var dn=new un.Parachain({assetsData:[{asset:fs,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:T,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:A,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:un.SubstrateBalanceType.Tokens,ecosystem:un.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 yo=[qe,dn];var Ur=[...ao,...po,...fo,...ho,...yo],bo=new Map(Ur.map(t=>[t.key,t]));var er=require("@galacticcouncil/xc-core");var Ks=require("@galacticcouncil/xc-core");var Ws={};$t(Ws,{ContractBuilder:()=>Pe,ExtrinsicBuilder:()=>h,ExtrinsicDecorator:()=>St,FeeAmountBuilder:()=>X,FeeAssetBuilder:()=>Cn,MoveBuilder:()=>Gs,ProgramBuilder:()=>Os,XcmTransferType:()=>Xe,XcmVersion:()=>et});var Mt=require("@galacticcouncil/xc-core"),go=require("viem"),Kr=t=>({build:async e=>{let n=await Promise.all(t.map(r=>r.build(e))),s=n.map(r=>r.address),o=[0,0],a=n.map(r=>(0,go.encodeFunctionData)({abi:Mt.Abi[r.module],functionName:r.func,args:r.args}));return new Mt.ContractConfig({abi:Mt.Abi.Batch,address:Mt.Precompile.Batch,args:[s,o,a,[]],func:"batchAll",module:"Batch"})}}),xo=()=>({batchAll:Kr});var ln=require("@galacticcouncil/xc-core");function j(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Gt(t){return typeof t=="object"?Object.values(t)[0]:t}function Ao(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:o,transact:a}=e,r=a?a.chain:o.chain,c=ln.Wormhole.fromChain(r),i=r.getAssetId(s);return new ln.ContractConfig({abi:ln.Abi.Erc20,address:Gt(i).toString(),args:[t(c),n],func:"approve",module:"Erc20"})}})}}var pn=require("@galacticcouncil/xc-core");var wo=require("@galacticcouncil/common"),Co=require("polkadot-api"),ko=require("@polkadot-api/utils"),{H160:qr,isEvmAddress:zr}=wo.h160;function jr(t){let e=zr(t)?qr.toAccount(t):t;return(0,ko.toHex)((0,Co.AccountId)().enc(e))}var $r=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o}=t,a=o.chain,r=pn.Basejump.fromChain(a),c=a.getAssetId(s);return new pn.ContractConfig({abi:pn.Abi.Basejump,address:r.getAddress(),args:[Gt(c),n,jr(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),vo=()=>({bridgeViaWormhole:$r});var ze=require("@galacticcouncil/xc-core"),To=require("@galacticcouncil/common"),{Ss58Addr:Eo}=ze.addr;function Jr(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function gs(t,e){let n=t.getAssetId(e);return typeof n=="string"?Jr(n):n}function Fo(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=gs(o.chain,n);return new ze.ContractConfig({abi:ze.Abi.PolkadotXcm,address:ze.Precompile.PolkadotXcm,args:[s.chain.parachainId,Eo.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=gs(o.chain,n),r=gs(o.chain,o.destinationFeeBalance),c=To.big.toBigInt(s.fee.amount,s.fee.decimals);return new ze.ContractConfig({abi:ze.Abi.PolkadotXcm,address:ze.Precompile.PolkadotXcm,args:[s.chain.parachainId,Eo.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var $e=require("@galacticcouncil/xc-core"),Tt=require("@galacticcouncil/descriptors"),No=require("@polkadot-api/substrate-bindings"),Dn=require("@polkadot-api/utils"),Mo=require("viem");var So=require("@galacticcouncil/xc-core"),Xn=null;async function Bo(){if(Xn)return Xn;let t=await So.codec.getHubCodecs();return Xn={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},Xn}var Io=require("@galacticcouncil/xc-core"),u=require("@galacticcouncil/descriptors"),Ro=require("@polkadot-api/substrate-bindings"),Lo=require("@polkadot-api/utils");var Po=require("@galacticcouncil/descriptors"),$=340282366920938463463374607431768211455n,je="0x0000000000000000000000000000000000000000000000000000000000000000",U={parents:1,interior:Po.XcmV3Junctions.Here()},Xo=0,Et=1e3,_n=1002,Ve=1,Ot="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",_o="0x0000000000000000000000000000000000000000000000000000000000000000",Do="0x0000000000000000000000000000000000000000";var xs="0x0000000000000000000000000000000000000000",fn=t=>({parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),As=(t,e)=>({parents:2,interior:u.XcmV5Junctions.X2([u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})),u.XcmV5Junction.AccountKey20({key:e,network:void 0})])});function Ho(t,e){let n=fn(t),s=As(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[u.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:u.XcmV3MultiassetFungibility.Fungible(o)},{id:s,fun:u.XcmV3MultiassetFungibility.Fungible(o)}]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],maximal:!1}),u.XcmV5Instruction.PayFees({asset:{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(a)}})],c=ws({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function ws(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=fn(e),m=s===xs?i:As(e,s),d=o.length===42&&o.startsWith("0x")?u.XcmV5Junction.AccountKey20({key:o,network:void 0}):u.XcmV5Junction.AccountId32({id:o,network:void 0}),f={parents:0,interior:u.XcmV5Junctions.X1(d)};return[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:f})]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(r)}],maximal:!1}),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:u.XcmV5AssetFilter.Definite([{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:u.XcmV5AssetFilter.Definite([{id:m,fun:u.XcmV3MultiassetFungibility.Fungible(a)}])}],remote_xcm:[u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:f}),u.XcmV5Instruction.SetTopic(c)]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:f}),u.XcmV5Instruction.SetTopic(c)]}function Cs(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,p=fn(Ve),d=e===xs?p:As(Ve,e),f={parents:0,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.AccountId32({id:n,network:void 0}))},y={parents:0,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.AccountKey20({key:s,network:void 0}))},x={parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(Ve)})))},C=[u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:y}),u.XcmV5Instruction.SetTopic(m)],F=[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:f}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:f})])];F.push(u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Definite([{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(c)}]),want:[{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}));let S=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))}],I=u.XcmV5AssetFilter.Definite([{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}]);F.push(u.XcmV5Instruction.InitiateTransfer({destination:x,remote_fees:{type:"ReserveWithdraw",value:I},preserve_origin:!0,assets:S,remote_xcm:C}),u.XcmV5Instruction.SetTopic(m));let R=a+r+c,O=[{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(R)},{id:d,fun:u.XcmV3MultiassetFungibility.Fungible(o)}],Z=[{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],k={type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))},Ee=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(c)}])},k];return[u.XcmV5Instruction.WithdrawAsset(O),u.XcmV5Instruction.PayFees({asset:Z[0]}),u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:f}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:f})]),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(Et))},remote_fees:{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!0,assets:Ee,remote_xcm:F}),u.XcmV5Instruction.SetTopic(m)]}function Vo(t){let{address:e,amount:n,asset:s,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=(0,Ro.getSs58AddressInfo)(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let p=(0,Lo.toHex)(m.publicKey),d=i.getAssetXcmLocation(s),f=d?Io.multiloc.findNestedKey(d,"key"):void 0,y=f?f.key:xs,x=r.feeBreakdown,C=x.sourceExecutionFee??0n,F=x.dotRemoteFee??0n,S=x.dotToEtherSwapAmount??0n,I=x.etherFeeAmount??0n,O=Cs({tokenAddress:y,senderPubKey:p,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:C,dotRemoteFee:F,dotToEtherSwapAmount:S,etherFeeAmount:I,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return u.XcmVersionedXcm.V5(O)}var{Ss58Addr:Go}=$e.addr,Yr="0x0000000000000000000000000000000000000000",Qr=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=$e.Snowbridge.fromChain(c),p=c.getAssetId(s),d=Gt(p),f=s.originSymbol==="ETH",y=r.feeBreakdown.executionFee,x=r.feeBreakdown.relayerFee,C=r.feeBreakdown.hydrationDotFee,F=r.fee.amount,S=Go.getPubKey(e),I=new TextEncoder().encode(`${i.parachainId}${o}${d}${S}${n}${Date.now()}`),R=(0,Dn.toHex)((0,No.Blake2256)(I)),O=ws({ethChainId:Ve,destinationParaId:i.parachainId,tokenAddress:f?Yr:d,beneficiaryHex:S,tokenAmount:n,hydrationDotFee:C,topic:R}),Z=await Bo(),k=(0,Dn.toHex)(Z.message.enc(Tt.XcmVersionedXcm.V5(O))),Ee=[];f||Ee.push((0,Mo.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,d,n]));let ft=Z.location.enc(Tt.XcmVersionedLocation.V5({parents:0,interior:Tt.XcmV5Junctions.X1(Tt.XcmV5Junction.AccountId32({id:S,network:void 0}))})),ot=(0,Dn.toHex)(ft.slice(1));return new $e.ContractConfig({abi:$e.Abi.Snowbridge,address:m.getGateway(),args:[k,Ee,ot,y,x],value:f?F+n:F,func:"v2_sendMessage",module:"Snowbridge"})}}),Zr=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=$e.Snowbridge.fromChain(r),m=r.getAssetId(s),p=Gt(m),d=s.originSymbol==="ETH",f=a.feeBreakdown.bridgeFeeInDot,y=a.fee.amount;return new $e.ContractConfig({abi:$e.Abi.Snowbridge,address:i.getGateway(),args:[p,c.parachainId,[1,Go.getPubKey(e)],f,n],value:d?y+n:y,func:"sendToken",module:"Snowbridge"})}}),Oo=()=>({v2SendMessage:Qr,sendToken:Zr});var Be=require("@galacticcouncil/xc-core"),ei="0x00",Wo=8,ti=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Be.Ntt.fromChain(r,s),m=Be.Wormhole.fromChain(c),p=e;c instanceof Be.EvmParachain&&(p=await c.getDerivatedAddress(e));let d=r,f=await d.evmClient.getProvider().readContract({abi:Be.Abi.NttManager,address:i.manager,args:[m.getWormholeId(),ei],functionName:"quoteDeliveryPrice"}),y=d.getAssetDecimals(s)??0,x=n;if(y>Wo){let C=10n**BigInt(y-Wo);x=n-n%C}return new Be.ContractConfig({abi:Be.Abi.NttManager,address:i.manager,args:[x,m.getWormholeId(),m.normalizeAddress(p)],token:i.token,wrapNative:d.getBalanceType(s)===Be.EvmBalanceType.Native,value:f[1],func:"transfer",module:"NttManager"})}}),Uo=()=>({transfer:ti});function Ko(){return{Ntt:Uo}}function Pe(){return{Batch:xo,Erc20:Ao,Basejump:vo,PolkadotXcm:Fo,Snowbridge:Oo,Wormhole:Ko}}var ks=require("@galacticcouncil/common"),zo=require("@galacticcouncil/xc-core"),qo="AssetConversion",ni=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:o}=s,a=s.destinationFeeSwap||s.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,m=(0,ks.encodeLocation)(i.getAssetXcmLocation(r)),p=(0,ks.encodeLocation)(i.getAssetXcmLocation(c)),d=r.amount+r.amount*BigInt(t.slippage)/100n,f=c.amount;return new zo.ExtrinsicConfig({module:qo,func:e,getTx:y=>y.getUnsafeApi().tx[qo][e]({path:[m,p],amount_out:f,amount_in_max:d,send_to:n,keep_alive:!0})})}}},jo=()=>({swapTokensForExactTokens:ni});var In=require("@galacticcouncil/descriptors"),$o=require("@galacticcouncil/xc-core"),si="Assets",oi=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:o})=>{let a=o.chain,{fee:r}=o,c=n>r.amount?n-r.amount:n,i=a.getMetadataAssetId(e);return new $o.ExtrinsicConfig({module:si,func:t,getTx:m=>m.getTypedApi(In.hub).tx.Assets.transfer({id:Number(i),target:In.MultiAddress.Id(s),amount:c})})}}},Jo=()=>({transfer:oi});var Qo=require("@galacticcouncil/xc-core"),Yo="Balances",ai=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new Qo.ExtrinsicConfig({module:Yo,func:e,getTx:s=>s.getUnsafeApi().tx[Yo][e]({dest:n,keep_alive:t})})}},Zo=()=>({transferAll:ai});var ea=require("@galacticcouncil/descriptors"),ta=require("@galacticcouncil/xc-core"),ri="Router",ii=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:o}=n;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=s,m=i.getMetadataAssetId(a),p=i.getMetadataAssetId(r),d=r.amount,f=a.amount+a.amount*BigInt(t.slippage)/100n;return new ta.ExtrinsicConfig({module:ri,func:"buy",getTx:y=>y.getTypedApi(ea.hydration).tx.Router.buy({asset_in:Number(m),asset_out:Number(p),amount_out:d,max_amount_in:f,route:c})})}}),na=()=>({buy:ii});var oa=require("@galacticcouncil/xc-core"),sa="Utility",ci=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(o=>o.build(n)));return new oa.ExtrinsicConfig({module:sa,func:e,getTx:o=>{let a=s.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[sa][e]({calls:a})}})}}},aa=()=>({batchAll:ci});var Rn=require("@galacticcouncil/xc-core"),ia=require("polkadot-api"),ca=require("viem");var et=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(et||{}),Xe=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Xe||{});var ra="EthereumXcm",mi=t=>{let e="transact";return{build:async n=>{let s=await t.build(n),o="V1",a=(0,ca.encodeFunctionData)({abi:Rn.Abi[s.module],functionName:s.func,args:s.args});return new Rn.ExtrinsicConfig({module:ra,func:e,getTx:r=>r.getUnsafeApi().tx[ra][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:s.address},value:[0n,0n,0n,0n],input:ia.Binary.fromHex(a),access_list:void 0}}})})}}},vs=()=>({transact:mi});var pt=require("@galacticcouncil/xc-core"),xn=require("@galacticcouncil/common");var Wt=require("@galacticcouncil/xc-core"),l=require("@galacticcouncil/descriptors");var J=require("@galacticcouncil/descriptors");var ma=require("@galacticcouncil/common"),Es=require("@galacticcouncil/descriptors"),ua=require("@polkadot-api/substrate-bindings"),da=require("@polkadot-api/utils");function W(t){if(t.length===42&&t.startsWith("0x"))return Es.XcmV3Junction.AccountKey20({key:t,network:void 0});let n=(0,ua.getSs58AddressInfo)(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Es.XcmV3Junction.AccountId32({id:(0,da.toHex)(n.publicKey),network:void 0})}function hn(t,e,n){return ma.acc.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}var Ts=require("@galacticcouncil/xc-core");function la(t,e){let n=Ts.multiloc.findNestedKey(t,"GeneralIndex"),s=Ts.multiloc.findNestedKey(e,"GeneralIndex"),o=n&&n.GeneralIndex,a=s&&s.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function N(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var Ln={};$t(Ln,{ETHER_TOKEN_ADDRESS:()=>Fs,erc20Location:()=>di,erc20LocationReanchored:()=>li,ethereumLocation:()=>fa,parachainLocation:()=>ui});var Ne=require("@galacticcouncil/descriptors"),Fs="0x0000000000000000000000000000000000000000",pa=t=>Ne.XcmV3Junction.GlobalConsensus(Ne.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function fa(t){return{parents:2,interior:Ne.XcmV3Junctions.X1(pa(t))}}function ui(t){return{parents:1,interior:Ne.XcmV3Junctions.X1(Ne.XcmV3Junction.Parachain(t))}}function di(t,e){return e===Fs?fa(t):{parents:2,interior:Ne.XcmV3Junctions.X2([pa(t),Ne.XcmV3Junction.AccountKey20({key:e})])}}function li(t){return t===Fs?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Ne.XcmV3Junctions.X1(Ne.XcmV3Junction.AccountKey20({key:t}))}}var Ss=require("@galacticcouncil/common"),ha=require("@galacticcouncil/xc-core");function G(t,e){return pi(e)>=4?(0,Ss.encodeLocation)(t):fi(t)}function pi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function fi(t){return{type:"Concrete",value:(0,Ss.encodeLocation)(t)}}var hi=1e3;function yi(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function bi(t){if(t)return yi(t)?hi:ha.multiloc.findParachain(t)}function ya(t,e,n,s){let o=e.getAssetXcmLocation(t),a=bi(o),r=s?.parachainId??n.parachainId;if(a&&r!==a)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${s.name} (${s.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function Hn(t,e){let n="V4",s=G(N(e,t),n),o=je;return[J.XcmV4Instruction.ReserveAssetDeposited([{id:U,fun:J.XcmV3MultiassetFungibility.Fungible($)},{id:s,fun:J.XcmV3MultiassetFungibility.Fungible($)}]),J.XcmV4Instruction.ClearOrigin(),J.XcmV4Instruction.BuyExecution({fees:{id:U,fun:J.XcmV3MultiassetFungibility.Fungible($)},weight_limit:J.XcmV3WeightLimit.Unlimited()}),J.XcmV4Instruction.DepositAsset({assets:J.XcmV4AssetAssetFilter.Wild(J.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:J.XcmV3Junctions.X1(W(Ot))}}),J.XcmV4Instruction.SetTopic(o)]}var tt=require("@galacticcouncil/descriptors");function Bs(t,e){let n="V4",s=G(N(e,t),n),o=Vn("V4",W(Do),W(Ot),s,je);return[tt.XcmV4Instruction.WithdrawAsset([{id:U,fun:tt.XcmV3MultiassetFungibility.Fungible($)},{id:s,fun:tt.XcmV3MultiassetFungibility.Fungible($)}]),tt.XcmV4Instruction.ClearOrigin(),tt.XcmV4Instruction.BuyExecution({fees:{id:U,fun:tt.XcmV3MultiassetFungibility.Fungible($)},weight_limit:tt.XcmV3WeightLimit.Unlimited()}),...o.value]}var P=require("@galacticcouncil/descriptors");function ba(t,e){let n="V4",s=G(N(e,t),n),o=je;return[P.XcmV4Instruction.WithdrawAsset([{id:s,fun:P.XcmV3MultiassetFungibility.Fungible($)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:s,fun:P.XcmV3MultiassetFungibility.Fungible($)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(W(Ot))}}),P.XcmV4Instruction.SetTopic(o)]}function Ps(t,e){let n="V4",s=G(N(e,t),n);return[P.XcmV4Instruction.BuyExecution({fees:{id:s,fun:P.XcmV3MultiassetFungibility.Fungible($)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(W(Ot))}})]}function ga(t,e,n){let s="V4",o=G(N(e,t),s),a=je,r=Ps(t,n);return[P.XcmV4Instruction.WithdrawAsset([{id:o,fun:P.XcmV3MultiassetFungibility.Fungible($)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:o,fun:P.XcmV3MultiassetFungibility.Fungible($)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositReserveAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:P.XcmV3Junctions.X1(P.XcmV3Junction.Parachain(n.parachainId))},xcm:r}),P.XcmV4Instruction.SetTopic(a)]}var K=require("@galacticcouncil/descriptors");function xa(t,e){let n="V5",s=G(N(e,t),n),o={parents:0,interior:K.XcmV5Junctions.X1(K.XcmV5Junction.AccountId32({id:_o,network:void 0}))};return[K.XcmV5Instruction.ReserveAssetDeposited([{id:U,fun:K.XcmV3MultiassetFungibility.Fungible($)}]),K.XcmV5Instruction.PayFees({asset:{id:U,fun:K.XcmV3MultiassetFungibility.Fungible($)}}),K.XcmV5Instruction.ReserveAssetDeposited([{id:s,fun:K.XcmV3MultiassetFungibility.Fungible($)}]),K.XcmV5Instruction.ClearOrigin(),K.XcmV5Instruction.DepositAsset({assets:K.XcmV5AssetFilter.Wild(K.XcmV5WildAsset.AllCounted(3)),beneficiary:o}),K.XcmV5Instruction.SetTopic(je)]}var Aa=[Wt.ChainEcosystem.Polkadot,Wt.ChainEcosystem.Kusama],gi={parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(1e3))},xi=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},wa=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Aa.includes(t.ecosystem)&&Aa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Ca=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},nt=(t,e,n)=>{if(wa(e,n))return{type:t,value:Xs(n.ecosystem,n.parachainId)};if(n.parachainId===Xo)return{type:t,value:{parents:1,interior:l.XcmV3Junctions.Here()}};let s=n.key==="ethereum"?Et:n.parachainId;return{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(s))}}},Ai=t=>t===Wt.ChainEcosystem.Kusama?l.XcmV3JunctionNetworkId.Kusama():l.XcmV3JunctionNetworkId.Polkadot(),Xs=(t,e)=>({parents:2,interior:l.XcmV3Junctions.X2([l.XcmV3Junction.GlobalConsensus(Ai(t)),l.XcmV3Junction.Parachain(e)])}),ka=(t,e,n,s)=>{if(wa(e,n)){if(e.parachainId!==Et){let o=Wt.multiloc.findGlobalConsensus(N(e,s)),a=typeof o=="string"&&o===n.ecosystem;return{dest:{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(Et))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(n.parachainId!==Et)return{dest:{type:t,value:Xs(n.ecosystem,Et)},mode:"onward"}}},Ut=(t,e)=>({type:t,value:{parents:0,interior:l.XcmV3Junctions.X1(e)}}),_s=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:xi(n)?gi:n}}:{type:e},Ft=(t,e)=>({id:t,fun:l.XcmV3MultiassetFungibility.Fungible(e)}),va=(t,e,n)=>({type:t,value:[l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(n)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]}),Vn=(t,e,n,s,o)=>{let a=o;return{type:t,value:[l.XcmV4Instruction.SetAppendix([l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(n)}})]),l.XcmV4Instruction.InitiateReserveWithdraw({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllOf({id:s,fun:l.XcmV2MultiassetWildFungibility.Fungible()})),reserve:Ln.ethereumLocation(Ve),xcm:[l.XcmV4Instruction.BuyExecution({fees:{id:wi(s),fun:l.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}}),l.XcmV4Instruction.SetTopic(a)]}),l.XcmV4Instruction.SetTopic(a)]}},Ea=(t,e,n,s,o,a)=>{let r=s==="onward"?{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(n.parachainId))}:Xs(n.ecosystem,n.parachainId),c={parents:0,interior:l.XcmV3Junctions.X1(e)},i=l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),m=[l.XcmV4Instruction.BuyExecution({fees:{id:o,fun:l.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.DepositAsset({assets:i,beneficiary:c})],p=s==="bridge-withdraw"?l.XcmV4Instruction.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):l.XcmV4Instruction.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[l.XcmV4Instruction.SetAppendix([l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.All()),beneficiary:c})]),p]}},wi=t=>{let e=Wt.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:l.XcmV3Junctions.Here()}},Ta=(t,e,n,s,o,a)=>({type:t,value:[l.XcmV4Instruction.WithdrawAsset([{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(s)}]),l.XcmV4Instruction.BuyExecution({fees:{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(s)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.Transact({origin_kind:l.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),l.XcmV4Instruction.RefundSurplus(),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]}),Fa=(t,e,n,s,o,a)=>({type:t,value:[l.XcmV4Instruction.WithdrawAsset([{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(o)}]),l.XcmV4Instruction.BuyExecution({fees:{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.TransferAsset({assets:[{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(s)}],beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(a)}}),l.XcmV4Instruction.RefundSurplus(),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]});var te="PolkadotXcm",Ci=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=W(t),r=o.chain,c=s.chain,i="V4",m=N(r,n),p=N(r,s.fee),d=G(m,i),f=G(p,i),y=Ft(d,e),x=Ft(f,s.fee.amount),C="limited_reserve_transfer_assets";return new pt.ExtrinsicConfig({module:te,func:C,getTx:F=>{let S=F.getUnsafeApi().tx[te][C];return n.key===s.fee.key?S({dest:nt(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):la(m,p)?S({dest:nt(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[x,y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):S({dest:nt(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[y,x]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),ki=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=W(t),r=o.chain,c=s.chain,i="V4",m=G(N(r,n),i),p=Ft(m,e),d=nt(i,r,c),f=Ut(i,a),y={type:i,value:[p]},x="limited_teleport_assets";return new pt.ExtrinsicConfig({module:te,func:x,getTx:C=>C.getUnsafeApi().tx[te][x]({dest:d,beneficiary:f,assets:y,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),vi=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=W(t),r=o.chain,c=s.chain,i=r.xcmVersion??"V4",m=G(N(r,n),i),p=Ft(m,e),d=nt(i,r,c),f=Ut(i,a),y={type:i,value:[p]},x="reserve_transfer_assets";return new pt.ExtrinsicConfig({module:te,func:x,getTx:C=>C.getUnsafeApi().tx[te][x]({dest:d,beneficiary:f,assets:y,fee_asset_item:0})})}}),Ei=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=W(t),r=o.chain,c=s.chain,i="V4",m=G(N(r,n),i),p=Ft(m,e),d=nt(i,r,c),f=Ut(i,a),y={type:i,value:[p]},x="transfer_assets";return new pt.ExtrinsicConfig({module:te,func:x,getTx:C=>C.getUnsafeApi().tx[te][x]({dest:d,beneficiary:f,assets:y,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ti=t=>({build:async({address:e,asset:n,amount:s,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let m="V4",p=c.chain,d=o.chain,f=o.fee.amount,y=o.fee;i&&(d=i.chain,f=xn.big.toBigInt(i.fee.amount,i.fee.decimals),y=i.fee);let x=W(r),C=i||d.usesCexForwarding?hn(p,r,d):e,F=W(C),{transferType:S}=t,I=G(N(p,n),m),R=G(N(p,y),m),O=Ft(I,s),Z=Ft(R,f),k=n.isEqual(y),Ee=ka(m,p,d,n),ft=Ee?.dest??nt(m,p,d),ot={type:m,value:k?[O]:[Z,O]},Sn=_s(m,S,I),us={type:m,value:k?I:R},ds=_s(m,S,R),jt;if(Ca(I)&&o.chain.isEvmChain())jt=Vn(m,F,x,I,a);else if(Ee){let gn=xn.big.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),_r=G(N(d,n),m);jt=Ea(m,F,d,Ee.mode,_r,gn)}else jt=va(m,F,ot.value.length);let Bn="transfer_assets_using_type_and_then";return new pt.ExtrinsicConfig({module:te,func:Bn,getTx:gn=>gn.getUnsafeApi().tx[te][Bn]({dest:ft,assets:ot,assets_transfer_type:Sn,remote_fees_id:us,fees_transfer_type:ds,custom_xcm_on_dest:jt,weight_limit:{type:"Unlimited"}})})}}),Fi=()=>{let t="send";return{transact:e=>({build:async n=>{let{sender:s,source:o,transact:a}=n,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,m=hn(c,s,i),p=W(m),{fee:d}=a,f=G(N(i,d),r),y=xn.big.toBigInt(e.fee,d.decimals);return new pt.ExtrinsicConfig({module:te,func:t,getTx:x=>x.getUnsafeApi().tx[te][t]({dest:nt(r,c,i),message:Ta(r,p,f,y,a.call,a.weight)})})}}),transferAsset:e=>({build:async n=>{let{amount:s,address:o,asset:a,sender:r,source:c,destination:i}=n,m="V4",p=c.chain,d=i.chain,f=hn(p,r,d),y=W(f),x=W(o),C=G(N(d,a),m),{fee:F}=i,S=xn.big.toBigInt(e.fee,F.decimals),I=s>F.amount?s-(F.amount+S):s;return new pt.ExtrinsicConfig({module:te,func:t,getTx:R=>R.getUnsafeApi().tx[te][t]({dest:nt(m,p,d),message:Fa(m,y,C,I,S,x)})})}})}};function Si(t){let e=n=>({build:async s=>{let o=n(s),a="execute";return new pt.ExtrinsicConfig({module:te,func:a,getTx:r=>r.getUnsafeApi().tx[te][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Vo)}}var Ds=()=>({limitedReserveTransferAssets:Ci,limitedTeleportAssets:ki,reserveTransferAssets:vi,transferAssets:Ei,transferAssetsUsingTypeAndThen:Ti,execute:Si,send:Fi});var Pa=require("@galacticcouncil/xc-core"),Xa=require("@galacticcouncil/common");var An=require("@galacticcouncil/descriptors"),Sa=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:An.XcmV3Junctions.X1(n)}}:{type:t,value:{parents:1,interior:An.XcmV3Junctions.X2([An.XcmV3Junction.Parachain(e.parachainId),n])}};var Ba="XTokens",Bi=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:o,source:a})=>{let r=a.chain,c=s.chain,i="V3",m=c.usesCexForwarding?hn(r,o,c):t,p=W(m),d=r.getAssetId(n),f=(0,Xa.encodeAssetId)(d),y="transfer";return new Pa.ExtrinsicConfig({module:Ba,func:y,getTx:x=>x.getUnsafeApi().tx[Ba][y]({currency_id:f,amount:e,dest:Sa(i,c,p),dest_weight_limit:{type:"Unlimited"}})})}}),Is=()=>({transfer:Bi});function h(){return{assetConversion:jo,assets:Jo,balances:Zo,ethereumXcm:vs,polkadotXcm:Ds,router:na,utility:aa,xTokens:Is}}function St(t,e){return{prior:function(n){return{build:async s=>t(s)?h().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?h().utility().batchAll([e,...n]).build(s):h().utility().batchAll([...n]).build(s)}}}}var Kt=require("@galacticcouncil/xc-core");var _a=80000n,Da=120000n,Ia=100000n,Ra=2000000n,Rs=15000000000000n;var Ms={};$t(Ms,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Va,AssethubClient:()=>ke,BaseClient:()=>Me,HydrationClient:()=>ne,getAllAssetDepositLimits:()=>Vs,getAssetDepositLimit:()=>Hs,getGlobalWithdrawLimit:()=>Ns});var Ls=require("@galacticcouncil/common"),wn=require("@galacticcouncil/descriptors"),Me=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??wn.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=(0,Ls.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,wn.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=(0,Ls.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,wn.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}};var _e=require("@galacticcouncil/descriptors"),La=require("@galacticcouncil/common"),Nn=require("@polkadot-api/substrate-bindings"),Ha=require("@polkadot-api/utils");var ke=class extends Me{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),o=(0,La.encodeLocation)(s);if(n===0)return!0;let a=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(n));return a&&a.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(s),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,n){let s=new TextEncoder().encode(e),o=(0,Ha.toHex)((0,Nn.Twox128)(s)),a=await this.client._request("state_getStorage",[o]);if(!a)return n;let r=Nn.u128.dec(a);return r===0n?n:r}async calculateDeliveryFee(e,n){let s=_e.XcmVersionedLocation.V5({parents:1,interior:_e.XcmV5Junctions.X1(_e.XcmV5Junction.Parachain(n))}),o=_e.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,_e.XcmVersionedXcm.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,n){let s={parents:1,interior:_e.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,n){let s={parents:1,interior:_e.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,n){let s={parents:1,interior:_e.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};var Ma=require("@galacticcouncil/descriptors");var Va=14400;function Na(t,e,n,s,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,p,d,f;n&&(n.type==="Locked"?(p=n.value,m=o<n.value):(d=n.value[0],f=n.value[1]));let y=s?.type==="Local"?"Local":"External",x=!m&&d!==void 0&&d+Va<=o,C=null;if(r!==null)if(m)C=0n;else if(x)C=r;else{let F=f??a,S=a>F?a-F:0n;C=r>S?r-S:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:p,lastResetBlock:d,baselineIssuance:f,currentIssuance:a,headroom:C,category:y,periodExpired:x}}async function Hs(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),n]);return Na(e,s,o,a,r,c)}async function Vs(t){let[e,n,s,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(n.map(d=>[d.keyArgs[0],d.value])),i=new Map(s.map(d=>[d.keyArgs[0],d.value])),m=new Map(r.map(d=>[d.keyArgs[0],d.value])),p=new Map;for(let d of e){let f=d.keyArgs[0],y=d.value;if(y?.xcm_rate_limit==null)continue;let x=f===0?a:m.get(f)??0n,C=Na(f,y,c.get(f),i.get(f),o,x);p.set(f.toString(),C)}return p}async function Ns(t){let[e,n,s,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=s??void 0,r=a!==void 0&&o<a,[c,i]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:p}=e,d=c;if(!r&&p>0n){let y=o>i?o-i:0n;if(y>0n){let x=y>p?p:y,C=c*x/p;d=c>C?c-C:0n}}let f=r||d>=m?0n:m-d;return{configured:!0,limit:m,windowMs:p,used:d,lastUpdateMs:i,headroom:f,lockdown:r,lockdownUntilMs:a}}var ne=class extends Me{constructor(e){super(e,Ma.hydration)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),o=await this.api().query.AssetRegistry.Assets.getValue(s);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,n){let s=Number(n),o=await this.api().query.Tokens.Accounts.getValue(e,s),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return Hs(this.api(),n)}getAllAssetDepositLimits(){return Vs(this.api())}getGlobalWithdrawLimit(){return Ns(this.api())}};function Pi(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:n})=>{let s=n,o=new ne(s),a=new ke(t.hub),r=Hn(e,s),c=xa(e,s),i=fn(Ve),m=250000000n,p=Ho(Ve,s.parachainId),[d,f,y,x]=await Promise.all([o.calculateDestinationFeeV5(c,w),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,_n),a.calculateDestinationFeeV5(p,w)]),C=j(d,33n),F=j(f,33n),S=j(y,33n),R=j(x,33n)+F,O=C,Z=await a.quoteEtherForDot(i,R),k=j(Z,30n),Ee=k<Rs*2n?Rs*2n:k,ft=j(await a.quoteEtherForDot(i,O),100n),ot=j(await a.quoteDotToEther(i,m+S),30n);return{amount:Ee+ot+ft,breakdown:{executionFee:Ee,relayerFee:ot,remoteEtherFee:ft,hydrationDotFee:O}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:o})=>{let a=s,r=o,c=new ke(t.hub),i=fn(Ve),m=Bs(e,a),[p,d,f]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,_n),c.calculateDestinationFee(m,n)]),y=await r.evmClient.getProvider().getGasPrice(),x=Ra+Da+_a+Ia,C=y*x,F=j(C,10n),S=p+j(d,33n)+j(f,33n),I=j(await c.quoteDotForExactEther(i,F),20n),R=new ne(a),O=Cs({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:je}),Z=j(await R.calculateDestinationFeeV5(O,w),33n);return{amount:S+I+Z,breakdown:{dotRemoteFee:S,dotToEtherSwapAmount:I,etherFeeAmount:F,sourceExecutionFee:Z}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:n,source:s})=>{let o=s,a=n,r=Kt.Snowbridge.fromChain(o),c=new Me(a),i=new ke(t.hub),m=Hn(e,a),[p,d]=await Promise.all([c.calculateDestinationFee(m,w),i.calculateDeliveryFee(m,a.parachainId)]),f=d+j(p,25n),y=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Kt.Abi.Snowbridge,address:r.getGateway(),args:[y,a.parachainId,f],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:f}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:n,source:s})=>{let o=s,a=new ke(t.hub),r=Bs(e,o),c=Hn(e,o),[i,m,p,d,f]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,_n),a.calculateDestinationFee(r,n),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,n)]);return{amount:i+m+j(p,25n)+d+j(f,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:p,returnToSenderDeliveryFee:d,returnToSenderDestinationFee:f}}}})}}function Xi(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let o=n,a=s,r=t?.reserve;if(ya(e,o,a,r),r){let f=new Me(a),y=new Me(r),x=Ps(e,a),C=ga(e,r,a),[F,S]=await Promise.all([f.calculateDestinationFee(x,e),y.calculateDestinationFee(C,e)]),I=S+F,R=j(I,20n),O=R-I;return{amount:R,breakdown:{reserveFee:S,destinationFee:F,margin:O}}}let c=new Me(a),i=ba(e,a),m=await c.calculateDestinationFee(i,e),p=j(m,20n),d=p-m;return{amount:p,breakdown:{totalFee:m,margin:d}}}})}}function _i(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=Kt.Basejump.fromChain(n),o=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Kt.Abi.Basejump,address:s.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function X(){return{Basejump:_i,XcmPaymentApi:Xi,Snowbridge:Pi}}var Di="0";function Ii(){return{build:async({address:t,chain:e})=>{let s=await new ne(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=s?s.toString():Di,a=e.findAssetById(o);return a?a.asset:Jt}}}var Ri=()=>({accountCurrencyMap:Ii});function Cn(){return{multiTransactionPayment:Ri}}var ve=require("@galacticcouncil/xc-core"),Ga=require("@mysten/sui/transactions"),Mn=require("@mysten/sui/utils"),Oa=require("@wormhole-foundation/sdk-base"),Li=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=ve.Ntt.fromChain(r,s),m=ve.Wormhole.fromChain(r),p=ve.Wormhole.fromChain(c),d=r.client,f=e;c instanceof ve.EvmParachain&&(f=await c.getDerivatedAddress(e));let y=Oa.encoding.hex.decode(p.normalizeAddress(f)),x=m.getCoreBridge(),C=i.manager,F=i.transceiver.wormhole,S=i.token,[I,R,O,Z]=await Promise.all([ve.suiPkg.getWormholePackageId(d,x),ve.suiPkg.getCurrentPackageId(d,C),ve.suiPkg.getCurrentPackageId(d,F),ve.suiPkg.getCoinMetadataId(d,S)]),k=new Ga.Transaction,[Ee]=k.splitCoins(k.gas,[k.pure.u64(n)]),[ft]=k.moveCall({target:`${R}::upgrades::new_version_gated`,arguments:[]}),[ot,Sn]=k.moveCall({target:`${R}::ntt::prepare_transfer`,typeArguments:[S],arguments:[k.object(C),Ee,k.object(Z),k.pure.u16(p.getWormholeId()),k.pure.vector("u8",Array.from(y)),k.pure.option("vector<u8>",null),k.pure.bool(!1)]}),[us]=k.moveCall({target:`${R}::state::get_next_sequence`,typeArguments:[S],arguments:[k.object(C)]});k.moveCall({target:`${R}::ntt::transfer_tx_sender`,typeArguments:[S],arguments:[k.object(C),ft,k.object(Z),ot,k.object(Mn.SUI_CLOCK_OBJECT_ID)]});let[ds]=k.moveCall({target:`${R}::state::create_transceiver_message`,typeArguments:[`${O}::wormhole_transceiver::TransceiverAuth`,S],arguments:[k.object(C),us,k.object(Mn.SUI_CLOCK_OBJECT_ID)]}),[jt]=k.moveCall({target:`${O}::wormhole_transceiver::release_outbound`,typeArguments:[`${R}::auth::ManagerAuth`],arguments:[k.object(F),ds]}),[Bn]=k.splitCoins(k.gas,[k.pure.u64(0n)]);k.moveCall({target:`${I}::publish_message::publish_message`,arguments:[k.object(x),Bn,jt,k.object(Mn.SUI_CLOCK_OBJECT_ID)]});let[gn]=k.moveCall({target:"0x2::coin::from_balance",typeArguments:[S],arguments:[Sn]});return k.mergeCoins(k.gas,[gn]),new ve.MoveConfig({transaction:k,func:"transfer",module:"NttManager"})}}),Wa=()=>({transfer:Li});function Ua(){return{Ntt:Wa}}function Gs(){return{Wormhole:Ua}}var Je=require("@galacticcouncil/xc-core"),Ka=require("@solana/spl-token"),Gn=require("@solana/web3.js"),qa=require("@wormhole-foundation/sdk-base"),za=require("@wormhole-foundation/sdk-definitions"),ja=require("@wormhole-foundation/sdk-solana"),$a=require("@wormhole-foundation/sdk-solana-ntt"),Ll=require("@wormhole-foundation/sdk-definitions-ntt");async function Hi(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(s=>t.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null)}async function Vi(t,e,n){let s=await Hi(t,e);return{instructions:"message"in e?Gn.TransactionMessage.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions,signers:n,lookupTables:s}}var Ni=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=Je.Ntt.fromChain(c,s),p=Je.Wormhole.fromChain(c),d=Je.Wormhole.fromChain(i),f=e;i instanceof Je.EvmParachain&&(f=await i.getDerivatedAddress(e));let y=new $a.SolanaNtt("Mainnet","Solana",c.connection,{coreBridge:p.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),x=c.getBalanceType(s)===Je.SolanaBalanceType.Native,C=Gn.Keypair.generate(),F=[];for await(let R of y.transfer(new ja.SolanaAddress(o),n,{chain:(0,qa.toChain)(d.getWormholeId()),address:new za.UniversalAddress(d.normalizeAddress(f))},{queue:!1,automatic:!1,wrapNative:x},C)){let{transaction:O,signers:Z}=R.transaction;F.push(await Vi(c.connection,O,Z??[]))}let S=x?BigInt(await(0,Ka.getMinimumBalanceForRentExemptAccount)(c.connection)):0n,I=F[F.length-1];return new Je.ProgramConfig({instructions:I.instructions,signers:I.signers,lookupTables:I.lookupTables,prerequisites:F.slice(0,-1),rentReserve:S,func:"transfer",module:"NttManager"})}}),Ja=()=>({transfer:Ni});function Ya(){return{Ntt:Ja}}function Os(){return{Wormhole:Ya}}var Us={};$t(Us,{Tag:()=>Bt});var Bt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Bt||{});function Qa(t,e){return new Ks.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:b,asset:e,fee:{amount:0,asset:t}},contract:Pe().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Za(t,e){return new Ks.AssetRoute({source:{asset:t,fee:{asset:_},destinationFee:t},destination:{chain:b,asset:e,fee:{amount:X().Basejump().quoteFee(),asset:t}},contract:Pe().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Mi=[Za(Ze,rt)],Gi=[Qa(Ze,rt)],tr=new er.ChainRoutes({chain:Qt,routes:[...Gi,...Mi]});var kn=require("@galacticcouncil/xc-core");var On=require("@galacticcouncil/xc-core");function Pt(t,e){return new On.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:b,asset:e,fee:{amount:0,asset:t}},contract:Pe().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function se(t,e){return new On.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:b,asset:e,fee:{amount:X().Snowbridge().calculateInboundFee({hub:B}),asset:_}},contract:Pe().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function oe(t,e){return new On.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:b,asset:e,fee:{amount:X().Snowbridge().calculateInboundFeeV1({hub:B}),asset:_}},contract:Pe().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Oi=[Pt(at,ht),Pt(We,yt),Pt(v,gt),Pt(A,bt),Pt(Ke,xt),Pt(mt,ut),Pt(_,ut)],Wi=[new kn.AssetRoute({source:{asset:_,fee:{asset:_}},destination:{chain:b,asset:_,fee:{amount:X().Snowbridge().calculateInboundFee({hub:B}),asset:_}},contract:Pe().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),se(ie,ie),se(ce,ce),se(me,me),se(ue,ue),se(fe,fe),se(ye,ye),se(be,be),se(le,le),se(de,de),se(pe,pe),se(he,he),se(ge,ge),se(xe,xe),se(v,ct),se(A,it)],Ui=[new kn.AssetRoute({source:{asset:_,fee:{asset:_}},destination:{chain:b,asset:_,fee:{amount:X().Snowbridge().calculateInboundFeeV1({hub:B}),asset:_}},contract:Pe().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),oe(ie,ie),oe(ce,ce),oe(me,me),oe(ue,ue),oe(fe,fe),oe(ye,ye),oe(be,be),oe(le,le),oe(de,de),oe(pe,pe),oe(he,he),oe(ge,ge),oe(xe,xe),oe(v,ct),oe(A,it)],nr=new kn.ChainRoutes({chain:E,routes:[...Oi,...Wi,...Ui]});var sr=[tr,nr];var Xt=require("@galacticcouncil/xc-core");var Wn=require("@galacticcouncil/xc-core");var qt=0,Ki=t=>{let{source:e}=t;return!!e.feeSwap},qi=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},or=h().assetConversion().swapTokensForExactTokens({slippage:30});function zi(t,e,n){return new Wn.AssetRoute({source:{asset:t,fee:{asset:w,extra:qt}},destination:{chain:e,asset:t,fee:{amount:n,asset:A}},extrinsic:St(qi,or).prior(h().polkadotXcm().limitedReserveTransferAssets())})}function Un(t,e,n){return new Wn.AssetRoute({source:{asset:t,fee:{asset:t,swap:!t.isEqual(w)}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:St(Ki,or).prior(h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function vn(t,e,n){return new Wn.AssetRoute({source:{asset:t,fee:{asset:w,extra:qt}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function Kn(t){return zi(t,b,.02)}var ji=[new Xt.AssetRoute({source:{asset:w,fee:{asset:w,extra:qt}},destination:{chain:b,asset:w,fee:{amount:.001,asset:w}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Xt.AssetRoute({source:{asset:T,fee:{asset:w,extra:qt}},destination:{chain:b,asset:T,fee:{amount:1e-4,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),vn(A,b,.02),vn(v,b,.02),Kn(dt)],$i=[new Xt.AssetRoute({source:{asset:T,fee:{asset:w,extra:qt}},destination:{chain:qe,asset:T,fee:{amount:.001,asset:T}},extrinsic:h().polkadotXcm().transferAssets()})],Ji=[vn(A,V,.03),vn(v,V,.03)],Yi=[new Xt.AssetRoute({source:{asset:H,fee:{asset:w,extra:qt}},destination:{chain:wt,asset:H,fee:{amount:2.5,asset:H}},extrinsic:h().polkadotXcm().limitedTeleportAssets()})],ar=new Xt.ChainRoutes({chain:At,routes:[Un(A,b,.02),Un(v,b,.02),Un(w,b,.001)]}),rr=new Xt.ChainRoutes({chain:B,routes:[...ji,...$i,...Ji,...Yi]});var Ye=require("@galacticcouncil/xc-core");var Qi=[new Ye.AssetRoute({source:{asset:L},destination:{chain:b,asset:L,fee:{amount:.044306118,asset:L}},extrinsic:h().polkadotXcm().reserveTransferAssets()}),new Ye.AssetRoute({source:{asset:D,fee:{asset:L}},destination:{chain:b,asset:D,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:V}),asset:D}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:M,fee:{asset:L}},destination:{chain:b,asset:M,fee:{amount:2e-6,asset:M}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:Te,fee:{asset:L}},destination:{chain:b,asset:Te,fee:{amount:.01,asset:Te}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:z,fee:{asset:L}},destination:{chain:b,asset:z,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:V}),asset:z}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:q,fee:{asset:L}},destination:{chain:b,asset:q,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:V}),asset:q}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:A,fee:{asset:L}},destination:{chain:b,asset:A,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:A}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:v,fee:{asset:L}},destination:{chain:b,asset:v,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:v}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],ir=new Ye.ChainRoutes({chain:ee,routes:[...Qi]});var De=require("@galacticcouncil/xc-core");var Zi=[new De.AssetRoute({source:{asset:D},destination:{chain:b,asset:D,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:z,fee:{asset:D}},destination:{chain:b,asset:z,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:q,fee:{asset:D}},destination:{chain:b,asset:q,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:q}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:w,fee:{asset:D}},destination:{chain:b,asset:w,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:w}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new De.AssetRoute({source:{asset:L,fee:{asset:D}},destination:{chain:b,asset:L,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:ee}),asset:L}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:M,fee:{asset:D}},destination:{chain:b,asset:M,fee:{amount:625e-8,asset:M}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:A,fee:{asset:D}},destination:{chain:b,asset:A,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:A}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:v,fee:{asset:D}},destination:{chain:b,asset:v,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:v}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],e0=[new De.AssetRoute({source:{asset:A,fee:{asset:D}},destination:{chain:B,asset:A,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:v,fee:{asset:D}},destination:{chain:B,asset:v,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:v}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],cr=new De.ChainRoutes({chain:V,routes:[...Zi,...e0]});var st=require("@galacticcouncil/xc-core");var ae=()=>({asset:Cn().multiTransactionPayment().accountCurrencyMap()});var _t=require("@galacticcouncil/xc-core");var t0=.02,qs=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},zs=h().router().buy({slippage:30});function Ae(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:e,asset:t,fee:{amount:X().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})}function Dt(t,e){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:e,asset:t,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function qn(t){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:B,asset:t,fee:{amount:t0,asset:A}},extrinsic:St(qs,zs).prior(h().polkadotXcm().limitedReserveTransferAssets())})}function js(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:qe,asset:t,fee:{amount:e,asset:t}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:n})})}function Ge(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:n,asset:e,fee:{amount:0,asset:t}},contract:Pe().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Y(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:n,asset:e,fee:{amount:X().Snowbridge().calculateOutboundFee({hub:B}),asset:w}},extrinsic:St(qs,zs).prior(h().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function Q(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:n,asset:e,fee:{amount:X().Snowbridge().calculateOutboundFeeV1({hub:B}),asset:w}},extrinsic:St(qs,zs).prior(h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var n0=[Dt(w,B),Dt(T,B),Dt(A,B),Dt(v,B),qn(dt)],s0=[js(T,.05,.005),js(w,.2,.02)],o0=[Ae(L,ee),Ae(D,ee,V),new st.AssetRoute({source:{asset:M,fee:ae()},destination:{chain:ee,asset:M,fee:{amount:2e-6,asset:M}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new st.AssetRoute({source:{asset:Te,fee:ae()},destination:{chain:ee,asset:Te,fee:{amount:.01,asset:Te}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),Ae(z,ee,V),Ae(q,ee,V),Ae(A,ee,B),Ae(v,ee,B)],a0=[Ae(D,V),Ae(z,V),Ae(q,V),Ae(L,V,ee),new st.AssetRoute({source:{asset:M,fee:ae()},destination:{chain:V,asset:M,fee:{amount:5e-6,asset:M}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),Ae(A,V,B),Ae(v,V,B),new st.AssetRoute({source:{asset:w,fee:ae()},destination:{chain:V,asset:w,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:w}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],r0=[new st.AssetRoute({source:{asset:H,fee:ae()},destination:{chain:wt,asset:H,fee:{amount:2.5,asset:H}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],i0=[Ae(Ue,an)],c0=[new st.AssetRoute({source:{asset:we,fee:ae()},destination:{chain:rn,asset:we,fee:{amount:.02,asset:we}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],m0=[new st.AssetRoute({source:{asset:Fe,fee:ae()},destination:{chain:nn,asset:Fe,fee:{amount:1.1,asset:Fe}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],u0=[Ae(Oe,tn)],d0=[Ge(ht,at,E),Ge(yt,We,E),Ge(gt,v,E),Ge(bt,A,E),Ge(xt,Ke,E),Ge(ut,_,E)],l0=[Ge(rt,Ze,Qt)],p0=[Ge(Ce,Ce,vt),Ge(Re,Re,vt),Ge(Le,Le,vt)],f0=[Ge(Se,Se,mn)],h0=[Y(_,_,E),Y(ie,ie,E),Y(ce,ce,E),Y(me,me,E),Y(ue,ue,E),Y(fe,fe,E),Y(ye,ye,E),Y(be,be,E),Y(ge,ge,E),Y(le,le,E),Y(de,de,E),Y(pe,pe,E),Y(he,he,E),Y(xe,xe,E),Y(ct,v,E),Y(it,A,E)],y0=[Q(_,_,E),Q(ie,ie,E),Q(ce,ce,E),Q(me,me,E),Q(ue,ue,E),Q(fe,fe,E),Q(ye,ye,E),Q(be,be,E),Q(ge,ge,E),Q(le,le,E),Q(de,de,E),Q(pe,pe,E),Q(he,he,E),Q(xe,xe,E),Q(ct,v,E),Q(it,A,E)],b0=[Dt(w,At),Dt(A,At),Dt(v,At)],mr=new st.ChainRoutes({chain:b,routes:[...n0,...o0,...a0,...b0,...l0,...d0,...h0,...p0,...f0,...y0,...c0,...s0,...r0,...u0,...m0,...i0]});var En=require("@galacticcouncil/xc-core");var g0=[new En.AssetRoute({source:{asset:H},destination:{chain:b,asset:H,fee:{amount:.01,asset:H}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],x0=[new En.AssetRoute({source:{asset:H},destination:{chain:B,asset:H,fee:{amount:.1,asset:H}},extrinsic:h().polkadotXcm().limitedTeleportAssets()})],ur=new En.ChainRoutes({chain:wt,routes:[...g0,...x0]});var zn=require("@galacticcouncil/xc-core");var A0=[new zn.AssetRoute({source:{asset:Ue},destination:{chain:b,asset:Ue,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:Ue}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],dr=new zn.ChainRoutes({chain:an,routes:[...A0]});var jn=require("@galacticcouncil/xc-core");var w0=[new jn.AssetRoute({source:{asset:Fe},destination:{chain:b,asset:Fe,fee:{amount:.2,asset:Fe}},extrinsic:h().polkadotXcm().reserveTransferAssets()})],lr=new jn.ChainRoutes({chain:nn,routes:[...w0]});var $n=require("@galacticcouncil/xc-core");var C0=[new $n.AssetRoute({source:{asset:we,fee:{asset:we,extra:.030555}},destination:{chain:b,asset:we,fee:{amount:.03,asset:we}},extrinsic:h().polkadotXcm().reserveTransferAssets()})],pr=new $n.ChainRoutes({chain:rn,routes:[...C0]});var Jn=require("@galacticcouncil/xc-core");var k0=[new Jn.AssetRoute({source:{asset:Oe},destination:{chain:b,asset:Oe,fee:{amount:.205,asset:Oe}},extrinsic:h().polkadotXcm().reserveTransferAssets()})],fr=new Jn.ChainRoutes({chain:tn,routes:[...k0]});var hr=[rr,ar,ir,cr,mr,ur,fr,dr,lr,pr];var Yn=require("@galacticcouncil/xc-core");function $s(t){return new Yn.AssetRoute({source:{asset:t,fee:{asset:Ce}},destination:{chain:b,asset:t,fee:{amount:0,asset:t}},program:Os().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var v0=[$s(Ce),$s(Re),$s(Le)],yr=new Yn.ChainRoutes({chain:vt,routes:[...v0]});var br=[yr];var Qn=require("@galacticcouncil/xc-core");function E0(t){return new Qn.AssetRoute({source:{asset:t,fee:{asset:Se}},destination:{chain:b,asset:t,fee:{amount:0,asset:t}},move:Gs().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var T0=[E0(Se)],gr=new Qn.ChainRoutes({chain:mn,routes:[...T0]});var xr=[gr];var zt=require("@galacticcouncil/xc-core");var F0=require("@galacticcouncil/xc-core");var Tn=.0015;var S0=new zt.AssetRoute({source:{asset:T,fee:{asset:T,extra:Tn}},destination:{chain:B,asset:T,fee:{amount:.002,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),B0=new zt.AssetRoute({source:{asset:T,fee:{asset:T,extra:Tn}},destination:{chain:dn,asset:T,fee:{amount:.0012,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),P0=[new zt.AssetRoute({source:{asset:T,fee:{asset:T,extra:Tn}},destination:{chain:b,asset:T,fee:{amount:.04,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new zt.AssetRoute({source:{asset:w,fee:{asset:T,extra:Tn}},destination:{chain:b,asset:w,fee:{amount:.15,asset:w}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Ar=new zt.ChainRoutes({chain:qe,routes:[B0,S0,...P0]});var Fn=require("@galacticcouncil/xc-core");var Js=()=>({asset:Cn().multiTransactionPayment().accountCurrencyMap()});var X0=[new Fn.AssetRoute({source:{asset:A,fee:Js()},destination:{chain:qe,asset:A,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],_0=[new Fn.AssetRoute({source:{asset:T,fee:Js()},destination:{chain:qe,asset:T,fee:{amount:.0012,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],wr=new Fn.ChainRoutes({chain:dn,routes:[...X0,..._0]});var Cr=[Ar,wr];var D0=[...sr,...hr,...br,...xr,...Cr],kr=new Map(D0.map(t=>[t.chain.key,t]));var Ys=require("@galacticcouncil/xc-core");var It=require("@galacticcouncil/xc-core"),Zn=class extends It.TransferValidation{async validate(e){let{source:n}=e,{chain:s,fee:o,feeBalance:a}=n;if(a.amount<o.amount)throw new It.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:s.name,error:"fee.insufficientBalance"})}},es=class extends It.TransferValidation{async skipFor(e){let{asset:n,source:s}=e,{enabled:o}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=s,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new It.TransferValidationError("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e instanceof It.Parachain)return(await e.getMin(n)).amount;let s=e.getAssetMin(n);return BigInt(s*10**n.decimals)}};var yn=require("@galacticcouncil/xc-core");var ts=class extends yn.TransferValidation{async skipFor(e){let{asset:n,destination:s}=e,o=s.chain;return await new ke(o).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain;if(await new ke(a).getSystemAccountBalance(s)===0n)throw new yn.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},ns=class extends yn.TransferValidation{async validate(e){let{asset:n,sender:s,source:o}=e,a=o.chain;if(await new ke(a).checkIfFrozen(s,n))throw new yn.TransferValidationError("Asset_Frozen",{asset:n.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var Qe=require("@galacticcouncil/xc-core");var I0=12,R0=1,L0=18,ss=class extends Qe.TransferValidation{async skipFor(e){let{destination:n}=e,s=n.chain,o=new ne(s),a=n.balance.amount>0n,r=await o.checkIfSufficient(n.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain,r=new ne(a),c=await r.getFeeAsset(s),i=a.findAssetById(c),m=i.min||R0,p=i.decimals||I0,d=m*Math.pow(10,p),f=await r.getAssetBalance(s,c);if(BigInt(d*1.1)>f)throw new Qe.TransferValidationError("Insufficient_Ed",{amount:d,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},os=class extends Qe.TransferValidation{async validate(e){let{amount:n,asset:s,destination:o}=e,a=o.chain,c=await new ne(a).getAssetDepositLimit(s);if(c.locked)throw new Qe.TransferValidationError("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&n>c.headroom)throw new Qe.TransferValidationError("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},as=class extends Qe.TransferValidation{async validate(e){let{source:n}=e,s=n.chain,a=await new ne(s).getGlobalWithdrawLimit();if(a.lockdown)throw new Qe.TransferValidationError("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},rs=class extends Qe.TransferValidation{async skipFor(e){let{source:n,transact:s}=e,{enabled:o}=n.destinationFeeSwap||{};return!(!!s&&s.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:s,source:o}=e,a=o.chain,r=new ne(a),c=a.getBalanceAssetId(Ie),i=a.getAssetDecimals(Ie)||L0,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(s,c.toString())<BigInt(m))throw new Qe.TransferValidationError("Insufficient_Ed",{amount:1,asset:Ie.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var re={isAny:()=>!0,isHydration:t=>t instanceof Ys.Parachain&&t.parachainId===2034,isHub:t=>t instanceof Ys.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},vr=[new Zn(re.isAny,re.isAny),new es(re.isAny,re.isAny),new ts(re.isAny,re.isHub),new ns(re.isHub,re.isAny),new ss(re.isAny,re.isHydration),new rs(re.isHydration,re.isAny),new os(re.isAny,re.isHydration),new as(re.isHydration,re.isAny)];var to={};$t(to,{AssethubDex:()=>eo,HydrationDex:()=>Qs});var bn=require("@galacticcouncil/sdk-next"),Tr=require("@galacticcouncil/common"),Fr=require("polkadot-api");var Er=(t,e=new Map)=>n=>{let s;return e.has(n)?e.get(n):(e.set(n,s=t(n)),s)};var{PoolType:is}=bn.pool,{TradeRouteBuilder:H0,TradeRouter:V0}=bn.sor,{TxBuilderFactory:N0}=bn.tx,Qs=class{chain;client;poolCtx;txBuilder;getCtx=Er(async e=>{console.log("init swap router",e,"\u2705");let n=new V0(this.poolCtx);return n.withFilter({useOnly:[is.Aave,is.Omni,is.Stable,is.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new ne(this.chain),this.txBuilder=new N0(n.client,n.evm)}async getCalldata(e,n,s,o,a=0){let r=Number(this.chain.getMetadataAssetId(n)),c=Number(this.chain.getMetadataAssetId(s)),i=o.amount,m=await this.getCtx(1),p=await m.getMostLiquidRoute(r,c),d=await m.getBuy(r,c,i,p),x=await(await this.txBuilder.trade(d).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Fr.Binary.toHex(x)}async getQuote(e,n,s,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(n)),c=s.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),p=await i.getBuy(a,r,c,m);return{amount:p.amountIn,route:H0.build(p.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,s.amount)};throw m}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*n,r=Math.pow(10,Tr.RUNTIME_DECIMALS);return a/BigInt(r)}};var Zs=require("@galacticcouncil/common"),eo=class{chain;client;constructor(e){this.chain=e,this.client=new ke(this.chain)}async getCalldata(e,n,s,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(n),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,Zs.encodeLocation)(o),(0,Zs.encodeLocation)(a),s.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};var Xr=require("@galacticcouncil/xc-core");var Sr=require("@galacticcouncil/xc-core");function cs(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new Sr.Asset({key:[o,n,e].join("_"),originSymbol:s})}function Br(t){let{decimals:e,id:n}=t;return{asset:cs(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function Pr(t){let{decimals:e,id:n,internalId:s,origin:o}=t;return{asset:cs(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var ms=class extends Xr.ConfigService{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),o=a=>!!n.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=cs(a),c=Br(a),i=Pr(a);console.log("\u{1F480} Registering "+r.key),s.updateAsset(c),n.updateAsset(i),this.updateAsset(r),this.updateChainRoute(s,Kn(r)),this.updateChainRoute(n,qn(r))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
|
1
|
+
"use strict";var ls=Object.defineProperty;var Dr=Object.getOwnPropertyDescriptor;var Ir=Object.getOwnPropertyNames;var Rr=Object.prototype.hasOwnProperty;var $t=(t,e)=>{for(var n in e)ls(t,n,{get:e[n],enumerable:!0})},Lr=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ir(e))!Rr.call(t,o)&&o!==n&&ls(t,o,{get:()=>e[o],enumerable:!(s=Dr(e,o))||s.enumerable});return t};var Hr=t=>Lr(ls({},"__esModule",{value:!0}),t);var M0={};$t(M0,{HydrationConfigService:()=>ms,assetsMap:()=>no,builders:()=>Ws,chainsMap:()=>bo,clients:()=>Ms,dex:()=>to,routesMap:()=>kr,tags:()=>Us,validations:()=>vr});module.exports=Hr(M0);var g=require("@galacticcouncil/xc-core"),ie=new g.Asset({key:"aave",originSymbol:"AAVE"}),ps=new g.Asset({key:"ajun",originSymbol:"AJUN"}),ce=new g.Asset({key:"apyusd",originSymbol:"apyUSD"}),L=new g.Asset({key:"astr",originSymbol:"ASTR"}),D=new g.Asset({key:"bnc",originSymbol:"BNC"}),fs=new g.Asset({key:"bsx",originSymbol:"BSX"}),me=new g.Asset({key:"cfg_new",originSymbol:"CFG"}),hs=new g.Asset({key:"cru",originSymbol:"CRU"}),rt=new g.Asset({key:"dai",originSymbol:"DAI"}),ht=new g.Asset({...rt,key:"dai_wh"}),w=new g.Asset({key:"dot",originSymbol:"DOT"}),_=new g.Asset({key:"eth",originSymbol:"ETH"}),ue=new g.Asset({key:"ena",originSymbol:"ENA"}),Ze=new g.Asset({key:"eurc",originSymbol:"EURC"}),it=new g.Asset({...Ze,key:"eurc_wh"}),Ie=new g.Asset({key:"glmr",originSymbol:"GLMR"}),Jt=new g.Asset({key:"hdx",originSymbol:"HDX"}),M=new g.Asset({key:"ibtc",originSymbol:"IBTC"}),Te=new g.Asset({key:"intr",originSymbol:"INTR"}),Re=new g.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),T=new g.Asset({key:"ksm",originSymbol:"KSM"}),de=new g.Asset({key:"ldo",originSymbol:"LDO"}),le=new g.Asset({key:"lbtc",originSymbol:"LBTC"}),we=new g.Asset({key:"ewt",originSymbol:"EWT"}),pe=new g.Asset({key:"link",originSymbol:"LINK"}),H=new g.Asset({key:"myth",originSymbol:"MYTH"}),Oe=new g.Asset({key:"neuro",originSymbol:"NEURO"}),Fe=new g.Asset({key:"pen",originSymbol:"PEN"}),fe=new g.Asset({key:"paxg",originSymbol:"PAXG"}),Le=new g.Asset({key:"prime",originSymbol:"PRIME"}),he=new g.Asset({key:"sky",originSymbol:"SKY"}),Ce=new g.Asset({key:"sol",originSymbol:"SOL"}),Se=new g.Asset({key:"sui",originSymbol:"SUI"}),ye=new g.Asset({key:"susde",originSymbol:"sUSDe"}),We=new g.Asset({key:"susds",originSymbol:"sUSDS"}),yt=new g.Asset({...We,key:"susds_wh"}),be=new g.Asset({key:"tbtc",originSymbol:"tBTC"}),ge=new g.Asset({key:"trac",originSymbol:"TRAC"}),Ue=new g.Asset({key:"unq",originSymbol:"UNQ"}),A=new g.Asset({key:"usdt",originSymbol:"USDT"}),bt=new g.Asset({...A,key:"usdt_wh"}),ct=new g.Asset({...A,key:"usdt_eth"}),v=new g.Asset({key:"usdc",originSymbol:"USDC"}),gt=new g.Asset({...v,key:"usdc_wh"}),mt=new g.Asset({...v,key:"usdc_eth"}),q=new g.Asset({key:"vastr",originSymbol:"vASTR"}),z=new g.Asset({key:"vdot",originSymbol:"vDOT"}),ut=new g.Asset({key:"weth",originSymbol:"WETH"}),dt=new g.Asset({...ut,key:"weth_wh"}),Ke=new g.Asset({key:"wbtc",originSymbol:"WBTC"}),xt=new g.Asset({...Ke,key:"wbtc_wh"}),xe=new g.Asset({key:"wsteth",originSymbol:"wstETH"}),lt=new g.Asset({key:"wud",originSymbol:"WUD"}),Vr=[ie,ps,ce,L,fs,me,hs,D,rt,ht,w,ue,Ze,it,_,Ie,Jt,M,Te,T,de,le,we,Re,pe,H,Oe,fe,Fe,Le,he,Ce,Se,ye,We,yt,ge,be,Ue,v,gt,mt,A,bt,ct,q,z,Ke,xt,ut,dt,xe,lt],no=new Map(Vr.map(t=>[t.key,t]));var Yt=require("@galacticcouncil/xc-core");var so=require("viem/chains"),Qt=new Yt.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:_,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:Ze,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:v,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Yt.EvmBalanceType.Erc20,ecosystem:Yt.ChainEcosystem.Ethereum,evmChain:so.base,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[Ze.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});var Rt=require("@galacticcouncil/xc-core");var oo=require("viem/chains"),E=new Rt.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:_,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:ie,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ce,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:me,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:ut,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:rt,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:ue,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:ye,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:We,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:be,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Ke,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:le,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:v,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:A,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:de,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:pe,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:fe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:he,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:ge,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:xe,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Rt.EvmBalanceType.Erc20,balanceOverrides:{[_.key]:Rt.EvmBalanceType.Native},ecosystem:Rt.ChainEcosystem.Ethereum,evmChain:oo.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",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[rt.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[We.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[v.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[A.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[Ke.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[ut.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[_.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var ao=[Qt,E];var He=require("@galacticcouncil/xc-core");var ro={assetsData:[{asset:w,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:A,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:v,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:lt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:H,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:T,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:He.SubstrateBalanceType.Assets,balanceOverrides:{[w.key]:He.SubstrateBalanceType.System,[T.key]:He.SubstrateBalanceType.ForeignAssets,[H.key]:He.SubstrateBalanceType.ForeignAssets},min:He.SubstrateMinType.Assets,ecosystem:He.ChainEcosystem.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},B=new He.Parachain({...ro,key:"assethub",name:"AssetHub Polkadot"}),At=new He.Parachain({...ro,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});var Lt=require("@galacticcouncil/xc-core");var ee=new Lt.Parachain({assetsData:[{asset:L,xcmLocation:{parents:0,interior:"Here"}},{asset:w,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:A,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:v,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:D,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ie,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Te,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,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"}}]}}}],balance:Lt.SubstrateBalanceType.Assets,balanceOverrides:{[L.key]:Lt.SubstrateBalanceType.System},ecosystem:Lt.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Ht=require("@galacticcouncil/xc-core");var Nr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],V=new Ht.Parachain({assetsData:[{asset:D,id:{Native:D.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,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:A,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:v,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:L,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:Ie,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Ht.SubstrateBalanceType.Tokens,balanceOverrides:{[D.key]:Ht.SubstrateBalanceType.System},ecosystem:Ht.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Nr});var Vt=require("@galacticcouncil/xc-core"),uo=require("viem");var co=require("@galacticcouncil/common"),mo=require("polkadot-api"),{isEvmAccount:Mr,H160:io}=co.h160,Pn=class{async toH160(e,n){if(Mr(e))return io.fromAccount(e);let s=io.fromSS58(e);if(n&&await this.isBound(n,s,e))return s;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,n,s){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(n);if(!a)return!1;let r=(0,mo.AccountId)().enc(s),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var Gr=new Pn,ys=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],bs=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],Or=(0,uo.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:ys,webSocket:bs},default:{http:ys,webSocket:bs}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),b=new Vt.EvmParachain({assetsData:[{asset:Jt,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:ie,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ps,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:D,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:me,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:hs,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:w,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ht,decimals:18,id:18,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f"}}]}}},{asset:_,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:ce,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:ue,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:Ie,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Te,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:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0xfcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd"}}]}}},{asset:Le,decimals:6,id:43,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x26759f460ee5f743ed66d27c8f2a5623bf39d53ed575955320661e6e13e0e3da"}}]}}},{asset:we,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:de,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:T,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:le,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:pe,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:fe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:H,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Oe,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Fe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:he,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Ce,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001"}}]}}},{asset:Se,decimals:9,id:1000753,min:.003,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:21},{GeneralKey:{length:32,data:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}]}}},{asset:ye,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:We,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:yt,decimals:18,id:1000745,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:be,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:ge,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ue,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:v,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:gt,decimals:6,id:21,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:it,decimals:6,id:44,min:.014,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:30},{GeneralKey:{length:32,data:"0x00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42"}}]}}},{asset:mt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:A,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:bt,decimals:6,id:23,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:ct,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:z,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ke,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:xt,decimals:8,id:19,min:34e-8,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ut,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:dt,decimals:18,id:20,min:54e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:xe,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}]}}}],balance:Vt.SubstrateBalanceType.Tokens,balanceOverrides:{[Jt.key]:Vt.SubstrateBalanceType.System},ecosystem:Vt.ChainEcosystem.Polkadot,evmChain:Or,evmResolver:Gr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[ht.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[it.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Re.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Le.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Ce.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Se.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[yt.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[gt.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[bt.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[xt.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[dt.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:bs,rpcs:ys});var Zt=require("@galacticcouncil/xc-core");var wt=new Zt.Parachain({assetsData:[{asset:H,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Zt.SubstrateBalanceType.System,ecosystem:Zt.ChainEcosystem.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});var en=require("@galacticcouncil/xc-core");var tn=new en.Parachain({assetsData:[{asset:Oe,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:en.SubstrateBalanceType.System,ecosystem:en.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 Ct=require("@galacticcouncil/xc-core");var nn=new Ct.Parachain({assetsData:[{asset:Fe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Ct.SubstrateBalanceType.System,ecosystem:Ct.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Ct.XcmVersion.v3});var sn=require("@galacticcouncil/xc-core");var Wr={assetsData:[{asset:w,xcmLocation:{parents:0,interior:"Here"}}],balance:sn.SubstrateBalanceType.System,ecosystem:sn.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"},lo=new sn.Parachain({...Wr,key:"polkadot"});var on=require("@galacticcouncil/xc-core");var an=new on.Parachain({assetsData:[{asset:Ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:on.SubstrateBalanceType.System,ecosystem:on.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var kt=require("@galacticcouncil/xc-core");var rn=new kt.Parachain({assetsData:[{asset:we,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:kt.SubstrateBalanceType.System,ecosystem:kt.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",xcmVersion:kt.XcmVersion.v3});var po=[B,At,ee,V,b,tn,wt,nn,lo,an,rn];var Nt=require("@galacticcouncil/xc-core");var vt=new Nt.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:Ce,decimals:9},{asset:Re,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Le,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Nt.SolanaBalanceType.Token,balanceOverrides:{[Ce.key]:Nt.SolanaBalanceType.Native},ecosystem:Nt.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",ntt:{[Ce.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Re.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Le.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var fo=[vt];var cn=require("@galacticcouncil/xc-core");var mn=new cn.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Se,decimals:9}],balance:cn.SuiBalanceType.Native,ecosystem:cn.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[Se.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var ho=[mn];var et=require("@galacticcouncil/xc-core");var qe=new et.Parachain({assetsData:[{asset:T,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:w,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:A,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:et.SubstrateBalanceType.Assets,balanceOverrides:{[T.key]:et.SubstrateBalanceType.System,[w.key]:et.SubstrateBalanceType.ForeignAssets},min:et.SubstrateMinType.Assets,ecosystem:et.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 un=require("@galacticcouncil/xc-core");var dn=new un.Parachain({assetsData:[{asset:fs,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:T,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:A,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:un.SubstrateBalanceType.Tokens,ecosystem:un.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 yo=[qe,dn];var Ur=[...ao,...po,...fo,...ho,...yo],bo=new Map(Ur.map(t=>[t.key,t]));var er=require("@galacticcouncil/xc-core");var Ks=require("@galacticcouncil/xc-core");var Ws={};$t(Ws,{ContractBuilder:()=>Pe,ExtrinsicBuilder:()=>h,ExtrinsicDecorator:()=>St,FeeAmountBuilder:()=>X,FeeAssetBuilder:()=>Cn,MoveBuilder:()=>Gs,ProgramBuilder:()=>Os,XcmTransferType:()=>Xe,XcmVersion:()=>tt});var Mt=require("@galacticcouncil/xc-core"),go=require("viem"),Kr=t=>({build:async e=>{let n=await Promise.all(t.map(r=>r.build(e))),s=n.map(r=>r.address),o=[0,0],a=n.map(r=>(0,go.encodeFunctionData)({abi:Mt.Abi[r.module],functionName:r.func,args:r.args}));return new Mt.ContractConfig({abi:Mt.Abi.Batch,address:Mt.Precompile.Batch,args:[s,o,a,[]],func:"batchAll",module:"Batch"})}}),xo=()=>({batchAll:Kr});var ln=require("@galacticcouncil/xc-core");function j(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Gt(t){return typeof t=="object"?Object.values(t)[0]:t}function Ao(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:o,transact:a}=e,r=a?a.chain:o.chain,c=ln.Wormhole.fromChain(r),i=r.getAssetId(s);return new ln.ContractConfig({abi:ln.Abi.Erc20,address:Gt(i).toString(),args:[t(c),n],func:"approve",module:"Erc20"})}})}}var pn=require("@galacticcouncil/xc-core");var wo=require("@galacticcouncil/common"),Co=require("polkadot-api"),ko=require("@polkadot-api/utils"),{H160:qr,isEvmAddress:zr}=wo.h160;function jr(t){let e=zr(t)?qr.toAccount(t):t;return(0,ko.toHex)((0,Co.AccountId)().enc(e))}var $r=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o}=t,a=o.chain,r=pn.Basejump.fromChain(a),c=a.getAssetId(s);return new pn.ContractConfig({abi:pn.Abi.Basejump,address:r.getAddress(),args:[Gt(c),n,jr(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),vo=()=>({bridgeViaWormhole:$r});var ze=require("@galacticcouncil/xc-core"),To=require("@galacticcouncil/common"),{Ss58Addr:Eo}=ze.addr;function Jr(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function gs(t,e){let n=t.getAssetId(e);return typeof n=="string"?Jr(n):n}function Fo(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=gs(o.chain,n);return new ze.ContractConfig({abi:ze.Abi.PolkadotXcm,address:ze.Precompile.PolkadotXcm,args:[s.chain.parachainId,Eo.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=gs(o.chain,n),r=gs(o.chain,o.destinationFeeBalance),c=To.big.toBigInt(s.fee.amount,s.fee.decimals);return new ze.ContractConfig({abi:ze.Abi.PolkadotXcm,address:ze.Precompile.PolkadotXcm,args:[s.chain.parachainId,Eo.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var $e=require("@galacticcouncil/xc-core"),Tt=require("@galacticcouncil/descriptors"),No=require("@polkadot-api/substrate-bindings"),Dn=require("@polkadot-api/utils"),Mo=require("viem");var So=require("@galacticcouncil/xc-core"),Xn=null;async function Bo(){if(Xn)return Xn;let t=await So.codec.getHubCodecs();return Xn={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},Xn}var Io=require("@galacticcouncil/xc-core"),u=require("@galacticcouncil/descriptors"),Ro=require("@polkadot-api/substrate-bindings"),Lo=require("@polkadot-api/utils");var Po=require("@galacticcouncil/descriptors"),$=340282366920938463463374607431768211455n,je="0x0000000000000000000000000000000000000000000000000000000000000000",U={parents:1,interior:Po.XcmV3Junctions.Here()},Xo=0,Et=1e3,_n=1002,Ve=1,Ot="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",_o="0x0000000000000000000000000000000000000000000000000000000000000000",Do="0x0000000000000000000000000000000000000000";var xs="0x0000000000000000000000000000000000000000",fn=t=>({parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),As=(t,e)=>({parents:2,interior:u.XcmV5Junctions.X2([u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})),u.XcmV5Junction.AccountKey20({key:e,network:void 0})])});function Ho(t,e){let n=fn(t),s=As(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[u.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:u.XcmV3MultiassetFungibility.Fungible(o)},{id:s,fun:u.XcmV3MultiassetFungibility.Fungible(o)}]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],maximal:!1}),u.XcmV5Instruction.PayFees({asset:{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(a)}})],c=ws({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function ws(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=fn(e),m=s===xs?i:As(e,s),d=o.length===42&&o.startsWith("0x")?u.XcmV5Junction.AccountKey20({key:o,network:void 0}):u.XcmV5Junction.AccountId32({id:o,network:void 0}),f={parents:0,interior:u.XcmV5Junctions.X1(d)};return[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:f})]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(r)}],maximal:!1}),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:u.XcmV5AssetFilter.Definite([{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:u.XcmV5AssetFilter.Definite([{id:m,fun:u.XcmV3MultiassetFungibility.Fungible(a)}])}],remote_xcm:[u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:f}),u.XcmV5Instruction.SetTopic(c)]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:f}),u.XcmV5Instruction.SetTopic(c)]}function Cs(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,p=fn(Ve),d=e===xs?p:As(Ve,e),f={parents:0,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.AccountId32({id:n,network:void 0}))},y={parents:0,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.AccountKey20({key:s,network:void 0}))},x={parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(Ve)})))},C=[u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:y}),u.XcmV5Instruction.SetTopic(m)],F=[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:f}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:f})])];F.push(u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Definite([{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(c)}]),want:[{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}));let S=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))}],I=u.XcmV5AssetFilter.Definite([{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}]);F.push(u.XcmV5Instruction.InitiateTransfer({destination:x,remote_fees:{type:"ReserveWithdraw",value:I},preserve_origin:!0,assets:S,remote_xcm:C}),u.XcmV5Instruction.SetTopic(m));let R=a+r+c,O=[{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(R)},{id:d,fun:u.XcmV3MultiassetFungibility.Fungible(o)}],Z=[{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],k={type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))},Ee=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(c)}])},k];return[u.XcmV5Instruction.WithdrawAsset(O),u.XcmV5Instruction.PayFees({asset:Z[0]}),u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:f}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:f})]),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(Et))},remote_fees:{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:U,fun:u.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!0,assets:Ee,remote_xcm:F}),u.XcmV5Instruction.SetTopic(m)]}function Vo(t){let{address:e,amount:n,asset:s,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=(0,Ro.getSs58AddressInfo)(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let p=(0,Lo.toHex)(m.publicKey),d=i.getAssetXcmLocation(s),f=d?Io.multiloc.findNestedKey(d,"key"):void 0,y=f?f.key:xs,x=r.feeBreakdown,C=x.sourceExecutionFee??0n,F=x.dotRemoteFee??0n,S=x.dotToEtherSwapAmount??0n,I=x.etherFeeAmount??0n,O=Cs({tokenAddress:y,senderPubKey:p,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:C,dotRemoteFee:F,dotToEtherSwapAmount:S,etherFeeAmount:I,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return u.XcmVersionedXcm.V5(O)}var{Ss58Addr:Go}=$e.addr,Yr="0x0000000000000000000000000000000000000000",Qr=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=$e.Snowbridge.fromChain(c),p=c.getAssetId(s),d=Gt(p),f=s.originSymbol==="ETH",y=r.feeBreakdown.executionFee,x=r.feeBreakdown.relayerFee,C=r.feeBreakdown.hydrationDotFee,F=r.fee.amount,S=Go.getPubKey(e),I=new TextEncoder().encode(`${i.parachainId}${o}${d}${S}${n}${Date.now()}`),R=(0,Dn.toHex)((0,No.Blake2256)(I)),O=ws({ethChainId:Ve,destinationParaId:i.parachainId,tokenAddress:f?Yr:d,beneficiaryHex:S,tokenAmount:n,hydrationDotFee:C,topic:R}),Z=await Bo(),k=(0,Dn.toHex)(Z.message.enc(Tt.XcmVersionedXcm.V5(O))),Ee=[];f||Ee.push((0,Mo.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,d,n]));let ft=Z.location.enc(Tt.XcmVersionedLocation.V5({parents:0,interior:Tt.XcmV5Junctions.X1(Tt.XcmV5Junction.AccountId32({id:S,network:void 0}))})),at=(0,Dn.toHex)(ft.slice(1));return new $e.ContractConfig({abi:$e.Abi.Snowbridge,address:m.getGateway(),args:[k,Ee,at,y,x],value:f?F+n:F,func:"v2_sendMessage",module:"Snowbridge"})}}),Zr=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=$e.Snowbridge.fromChain(r),m=r.getAssetId(s),p=Gt(m),d=s.originSymbol==="ETH",f=a.feeBreakdown.bridgeFeeInDot,y=a.fee.amount;return new $e.ContractConfig({abi:$e.Abi.Snowbridge,address:i.getGateway(),args:[p,c.parachainId,[1,Go.getPubKey(e)],f,n],value:d?y+n:y,func:"sendToken",module:"Snowbridge"})}}),Oo=()=>({v2SendMessage:Qr,sendToken:Zr});var Be=require("@galacticcouncil/xc-core"),ei="0x00",Wo=8,ti=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Be.Ntt.fromChain(r,s),m=Be.Wormhole.fromChain(c),p=e;c instanceof Be.EvmParachain&&(p=await c.getDerivatedAddress(e));let d=r,f=await d.evmClient.getProvider().readContract({abi:Be.Abi.NttManager,address:i.manager,args:[m.getWormholeId(),ei],functionName:"quoteDeliveryPrice"}),y=d.getAssetDecimals(s)??0,x=n;if(y>Wo){let C=10n**BigInt(y-Wo);x=n-n%C}return new Be.ContractConfig({abi:Be.Abi.NttManager,address:i.manager,args:[x,m.getWormholeId(),m.normalizeAddress(p)],token:i.token,wrapNative:d.getBalanceType(s)===Be.EvmBalanceType.Native,value:f[1],func:"transfer",module:"NttManager"})}}),Uo=()=>({transfer:ti});function Ko(){return{Ntt:Uo}}function Pe(){return{Batch:xo,Erc20:Ao,Basejump:vo,PolkadotXcm:Fo,Snowbridge:Oo,Wormhole:Ko}}var ks=require("@galacticcouncil/common"),zo=require("@galacticcouncil/xc-core"),qo="AssetConversion",ni=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:o}=s,a=s.destinationFeeSwap||s.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,m=(0,ks.encodeLocation)(i.getAssetXcmLocation(r)),p=(0,ks.encodeLocation)(i.getAssetXcmLocation(c)),d=r.amount+r.amount*BigInt(t.slippage)/100n,f=c.amount;return new zo.ExtrinsicConfig({module:qo,func:e,getTx:y=>y.getUnsafeApi().tx[qo][e]({path:[m,p],amount_out:f,amount_in_max:d,send_to:n,keep_alive:!0})})}}},jo=()=>({swapTokensForExactTokens:ni});var In=require("@galacticcouncil/descriptors"),$o=require("@galacticcouncil/xc-core"),si="Assets",oi=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:o})=>{let a=o.chain,{fee:r}=o,c=n>r.amount?n-r.amount:n,i=a.getMetadataAssetId(e);return new $o.ExtrinsicConfig({module:si,func:t,getTx:m=>m.getTypedApi(In.hub).tx.Assets.transfer({id:Number(i),target:In.MultiAddress.Id(s),amount:c})})}}},Jo=()=>({transfer:oi});var Qo=require("@galacticcouncil/xc-core"),Yo="Balances",ai=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new Qo.ExtrinsicConfig({module:Yo,func:e,getTx:s=>s.getUnsafeApi().tx[Yo][e]({dest:n,keep_alive:t})})}},Zo=()=>({transferAll:ai});var ea=require("@galacticcouncil/descriptors"),ta=require("@galacticcouncil/xc-core"),ri="Router",ii=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:o}=n;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=s,m=i.getMetadataAssetId(a),p=i.getMetadataAssetId(r),d=r.amount,f=a.amount+a.amount*BigInt(t.slippage)/100n;return new ta.ExtrinsicConfig({module:ri,func:"buy",getTx:y=>y.getTypedApi(ea.hydration).tx.Router.buy({asset_in:Number(m),asset_out:Number(p),amount_out:d,max_amount_in:f,route:c})})}}),na=()=>({buy:ii});var oa=require("@galacticcouncil/xc-core"),sa="Utility",ci=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(o=>o.build(n)));return new oa.ExtrinsicConfig({module:sa,func:e,getTx:o=>{let a=s.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[sa][e]({calls:a})}})}}},aa=()=>({batchAll:ci});var Rn=require("@galacticcouncil/xc-core"),ia=require("polkadot-api"),ca=require("viem");var tt=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(tt||{}),Xe=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Xe||{});var ra="EthereumXcm",mi=t=>{let e="transact";return{build:async n=>{let s=await t.build(n),o="V1",a=(0,ca.encodeFunctionData)({abi:Rn.Abi[s.module],functionName:s.func,args:s.args});return new Rn.ExtrinsicConfig({module:ra,func:e,getTx:r=>r.getUnsafeApi().tx[ra][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:s.address},value:[0n,0n,0n,0n],input:ia.Binary.fromHex(a),access_list:void 0}}})})}}},vs=()=>({transact:mi});var pt=require("@galacticcouncil/xc-core"),xn=require("@galacticcouncil/common");var Wt=require("@galacticcouncil/xc-core"),l=require("@galacticcouncil/descriptors");var J=require("@galacticcouncil/descriptors");var ma=require("@galacticcouncil/common"),Es=require("@galacticcouncil/descriptors"),ua=require("@polkadot-api/substrate-bindings"),da=require("@polkadot-api/utils");function W(t){if(t.length===42&&t.startsWith("0x"))return Es.XcmV3Junction.AccountKey20({key:t,network:void 0});let n=(0,ua.getSs58AddressInfo)(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Es.XcmV3Junction.AccountId32({id:(0,da.toHex)(n.publicKey),network:void 0})}function hn(t,e,n){return ma.acc.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}var Ts=require("@galacticcouncil/xc-core");function la(t,e){let n=Ts.multiloc.findNestedKey(t,"GeneralIndex"),s=Ts.multiloc.findNestedKey(e,"GeneralIndex"),o=n&&n.GeneralIndex,a=s&&s.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function N(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var Ln={};$t(Ln,{ETHER_TOKEN_ADDRESS:()=>Fs,erc20Location:()=>di,erc20LocationReanchored:()=>li,ethereumLocation:()=>fa,parachainLocation:()=>ui});var Ne=require("@galacticcouncil/descriptors"),Fs="0x0000000000000000000000000000000000000000",pa=t=>Ne.XcmV3Junction.GlobalConsensus(Ne.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function fa(t){return{parents:2,interior:Ne.XcmV3Junctions.X1(pa(t))}}function ui(t){return{parents:1,interior:Ne.XcmV3Junctions.X1(Ne.XcmV3Junction.Parachain(t))}}function di(t,e){return e===Fs?fa(t):{parents:2,interior:Ne.XcmV3Junctions.X2([pa(t),Ne.XcmV3Junction.AccountKey20({key:e})])}}function li(t){return t===Fs?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Ne.XcmV3Junctions.X1(Ne.XcmV3Junction.AccountKey20({key:t}))}}var Ss=require("@galacticcouncil/common"),ha=require("@galacticcouncil/xc-core");function G(t,e){return pi(e)>=4?(0,Ss.encodeLocation)(t):fi(t)}function pi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function fi(t){return{type:"Concrete",value:(0,Ss.encodeLocation)(t)}}var hi=1e3;function yi(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function bi(t){if(t)return yi(t)?hi:ha.multiloc.findParachain(t)}function ya(t,e,n,s){let o=e.getAssetXcmLocation(t),a=bi(o),r=s?.parachainId??n.parachainId;if(a&&r!==a)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${s.name} (${s.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function Hn(t,e){let n="V4",s=G(N(e,t),n),o=je;return[J.XcmV4Instruction.ReserveAssetDeposited([{id:U,fun:J.XcmV3MultiassetFungibility.Fungible($)},{id:s,fun:J.XcmV3MultiassetFungibility.Fungible($)}]),J.XcmV4Instruction.ClearOrigin(),J.XcmV4Instruction.BuyExecution({fees:{id:U,fun:J.XcmV3MultiassetFungibility.Fungible($)},weight_limit:J.XcmV3WeightLimit.Unlimited()}),J.XcmV4Instruction.DepositAsset({assets:J.XcmV4AssetAssetFilter.Wild(J.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:J.XcmV3Junctions.X1(W(Ot))}}),J.XcmV4Instruction.SetTopic(o)]}var nt=require("@galacticcouncil/descriptors");function Bs(t,e){let n="V4",s=G(N(e,t),n),o=Vn("V4",W(Do),W(Ot),s,je);return[nt.XcmV4Instruction.WithdrawAsset([{id:U,fun:nt.XcmV3MultiassetFungibility.Fungible($)},{id:s,fun:nt.XcmV3MultiassetFungibility.Fungible($)}]),nt.XcmV4Instruction.ClearOrigin(),nt.XcmV4Instruction.BuyExecution({fees:{id:U,fun:nt.XcmV3MultiassetFungibility.Fungible($)},weight_limit:nt.XcmV3WeightLimit.Unlimited()}),...o.value]}var P=require("@galacticcouncil/descriptors");function ba(t,e){let n="V4",s=G(N(e,t),n),o=je;return[P.XcmV4Instruction.WithdrawAsset([{id:s,fun:P.XcmV3MultiassetFungibility.Fungible($)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:s,fun:P.XcmV3MultiassetFungibility.Fungible($)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(W(Ot))}}),P.XcmV4Instruction.SetTopic(o)]}function Ps(t,e){let n="V4",s=G(N(e,t),n);return[P.XcmV4Instruction.BuyExecution({fees:{id:s,fun:P.XcmV3MultiassetFungibility.Fungible($)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(W(Ot))}})]}function ga(t,e,n){let s="V4",o=G(N(e,t),s),a=je,r=Ps(t,n);return[P.XcmV4Instruction.WithdrawAsset([{id:o,fun:P.XcmV3MultiassetFungibility.Fungible($)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:o,fun:P.XcmV3MultiassetFungibility.Fungible($)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositReserveAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:P.XcmV3Junctions.X1(P.XcmV3Junction.Parachain(n.parachainId))},xcm:r}),P.XcmV4Instruction.SetTopic(a)]}var K=require("@galacticcouncil/descriptors");function xa(t,e){let n="V5",s=G(N(e,t),n),o={parents:0,interior:K.XcmV5Junctions.X1(K.XcmV5Junction.AccountId32({id:_o,network:void 0}))};return[K.XcmV5Instruction.ReserveAssetDeposited([{id:U,fun:K.XcmV3MultiassetFungibility.Fungible($)}]),K.XcmV5Instruction.PayFees({asset:{id:U,fun:K.XcmV3MultiassetFungibility.Fungible($)}}),K.XcmV5Instruction.ReserveAssetDeposited([{id:s,fun:K.XcmV3MultiassetFungibility.Fungible($)}]),K.XcmV5Instruction.ClearOrigin(),K.XcmV5Instruction.DepositAsset({assets:K.XcmV5AssetFilter.Wild(K.XcmV5WildAsset.AllCounted(3)),beneficiary:o}),K.XcmV5Instruction.SetTopic(je)]}var Aa=[Wt.ChainEcosystem.Polkadot,Wt.ChainEcosystem.Kusama],gi={parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(1e3))},xi=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},wa=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Aa.includes(t.ecosystem)&&Aa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Ca=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},st=(t,e,n)=>{if(wa(e,n))return{type:t,value:Xs(n.ecosystem,n.parachainId)};if(n.parachainId===Xo)return{type:t,value:{parents:1,interior:l.XcmV3Junctions.Here()}};let s=n.key==="ethereum"?Et:n.parachainId;return{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(s))}}},Ai=t=>t===Wt.ChainEcosystem.Kusama?l.XcmV3JunctionNetworkId.Kusama():l.XcmV3JunctionNetworkId.Polkadot(),Xs=(t,e)=>({parents:2,interior:l.XcmV3Junctions.X2([l.XcmV3Junction.GlobalConsensus(Ai(t)),l.XcmV3Junction.Parachain(e)])}),ka=(t,e,n,s)=>{if(wa(e,n)){if(e.parachainId!==Et){let o=Wt.multiloc.findGlobalConsensus(N(e,s)),a=typeof o=="string"&&o===n.ecosystem;return{dest:{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(Et))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(n.parachainId!==Et)return{dest:{type:t,value:Xs(n.ecosystem,Et)},mode:"onward"}}},Ut=(t,e)=>({type:t,value:{parents:0,interior:l.XcmV3Junctions.X1(e)}}),_s=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:xi(n)?gi:n}}:{type:e},Ft=(t,e)=>({id:t,fun:l.XcmV3MultiassetFungibility.Fungible(e)}),va=(t,e,n)=>({type:t,value:[l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(n)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]}),Vn=(t,e,n,s,o)=>{let a=o;return{type:t,value:[l.XcmV4Instruction.SetAppendix([l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(n)}})]),l.XcmV4Instruction.InitiateReserveWithdraw({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllOf({id:s,fun:l.XcmV2MultiassetWildFungibility.Fungible()})),reserve:Ln.ethereumLocation(Ve),xcm:[l.XcmV4Instruction.BuyExecution({fees:{id:wi(s),fun:l.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}}),l.XcmV4Instruction.SetTopic(a)]}),l.XcmV4Instruction.SetTopic(a)]}},Ea=(t,e,n,s,o,a)=>{let r=s==="onward"?{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(n.parachainId))}:Xs(n.ecosystem,n.parachainId),c={parents:0,interior:l.XcmV3Junctions.X1(e)},i=l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),m=[l.XcmV4Instruction.BuyExecution({fees:{id:o,fun:l.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.DepositAsset({assets:i,beneficiary:c})],p=s==="bridge-withdraw"?l.XcmV4Instruction.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):l.XcmV4Instruction.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[l.XcmV4Instruction.SetAppendix([l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.All()),beneficiary:c})]),p]}},wi=t=>{let e=Wt.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:l.XcmV3Junctions.Here()}},Ta=(t,e,n,s,o,a)=>({type:t,value:[l.XcmV4Instruction.WithdrawAsset([{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(s)}]),l.XcmV4Instruction.BuyExecution({fees:{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(s)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.Transact({origin_kind:l.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),l.XcmV4Instruction.RefundSurplus(),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]}),Fa=(t,e,n,s,o,a)=>({type:t,value:[l.XcmV4Instruction.WithdrawAsset([{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(o)}]),l.XcmV4Instruction.BuyExecution({fees:{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.TransferAsset({assets:[{id:n,fun:l.XcmV3MultiassetFungibility.Fungible(s)}],beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(a)}}),l.XcmV4Instruction.RefundSurplus(),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]});var te="PolkadotXcm",Ci=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=W(t),r=o.chain,c=s.chain,i="V4",m=N(r,n),p=N(r,s.fee),d=G(m,i),f=G(p,i),y=Ft(d,e),x=Ft(f,s.fee.amount),C="limited_reserve_transfer_assets";return new pt.ExtrinsicConfig({module:te,func:C,getTx:F=>{let S=F.getUnsafeApi().tx[te][C];return n.key===s.fee.key?S({dest:st(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):la(m,p)?S({dest:st(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[x,y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):S({dest:st(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[y,x]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),ki=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=W(t),r=o.chain,c=s.chain,i="V4",m=G(N(r,n),i),p=Ft(m,e),d=st(i,r,c),f=Ut(i,a),y={type:i,value:[p]},x="limited_teleport_assets";return new pt.ExtrinsicConfig({module:te,func:x,getTx:C=>C.getUnsafeApi().tx[te][x]({dest:d,beneficiary:f,assets:y,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),vi=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=W(t),r=o.chain,c=s.chain,i=r.xcmVersion??"V4",m=G(N(r,n),i),p=Ft(m,e),d=st(i,r,c),f=Ut(i,a),y={type:i,value:[p]},x="reserve_transfer_assets";return new pt.ExtrinsicConfig({module:te,func:x,getTx:C=>C.getUnsafeApi().tx[te][x]({dest:d,beneficiary:f,assets:y,fee_asset_item:0})})}}),Ei=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=W(t),r=o.chain,c=s.chain,i="V4",m=G(N(r,n),i),p=Ft(m,e),d=st(i,r,c),f=Ut(i,a),y={type:i,value:[p]},x="transfer_assets";return new pt.ExtrinsicConfig({module:te,func:x,getTx:C=>C.getUnsafeApi().tx[te][x]({dest:d,beneficiary:f,assets:y,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ti=t=>({build:async({address:e,asset:n,amount:s,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let m="V4",p=c.chain,d=o.chain,f=o.fee.amount,y=o.fee;i&&(d=i.chain,f=xn.big.toBigInt(i.fee.amount,i.fee.decimals),y=i.fee);let x=W(r),C=i||d.usesCexForwarding?hn(p,r,d):e,F=W(C),{transferType:S}=t,I=G(N(p,n),m),R=G(N(p,y),m),O=Ft(I,s),Z=Ft(R,f),k=n.isEqual(y),Ee=ka(m,p,d,n),ft=Ee?.dest??st(m,p,d),at={type:m,value:k?[O]:[Z,O]},Sn=_s(m,S,I),us={type:m,value:k?I:R},ds=_s(m,S,R),jt;if(Ca(I)&&o.chain.isEvmChain())jt=Vn(m,F,x,I,a);else if(Ee){let gn=xn.big.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),_r=G(N(d,n),m);jt=Ea(m,F,d,Ee.mode,_r,gn)}else jt=va(m,F,at.value.length);let Bn="transfer_assets_using_type_and_then";return new pt.ExtrinsicConfig({module:te,func:Bn,getTx:gn=>gn.getUnsafeApi().tx[te][Bn]({dest:ft,assets:at,assets_transfer_type:Sn,remote_fees_id:us,fees_transfer_type:ds,custom_xcm_on_dest:jt,weight_limit:{type:"Unlimited"}})})}}),Fi=()=>{let t="send";return{transact:e=>({build:async n=>{let{sender:s,source:o,transact:a}=n,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,m=hn(c,s,i),p=W(m),{fee:d}=a,f=G(N(i,d),r),y=xn.big.toBigInt(e.fee,d.decimals);return new pt.ExtrinsicConfig({module:te,func:t,getTx:x=>x.getUnsafeApi().tx[te][t]({dest:st(r,c,i),message:Ta(r,p,f,y,a.call,a.weight)})})}}),transferAsset:e=>({build:async n=>{let{amount:s,address:o,asset:a,sender:r,source:c,destination:i}=n,m="V4",p=c.chain,d=i.chain,f=hn(p,r,d),y=W(f),x=W(o),C=G(N(d,a),m),{fee:F}=i,S=xn.big.toBigInt(e.fee,F.decimals),I=s>F.amount?s-(F.amount+S):s;return new pt.ExtrinsicConfig({module:te,func:t,getTx:R=>R.getUnsafeApi().tx[te][t]({dest:st(m,p,d),message:Fa(m,y,C,I,S,x)})})}})}};function Si(t){let e=n=>({build:async s=>{let o=n(s),a="execute";return new pt.ExtrinsicConfig({module:te,func:a,getTx:r=>r.getUnsafeApi().tx[te][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Vo)}}var Ds=()=>({limitedReserveTransferAssets:Ci,limitedTeleportAssets:ki,reserveTransferAssets:vi,transferAssets:Ei,transferAssetsUsingTypeAndThen:Ti,execute:Si,send:Fi});var Pa=require("@galacticcouncil/xc-core"),Xa=require("@galacticcouncil/common");var An=require("@galacticcouncil/descriptors"),Sa=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:An.XcmV3Junctions.X1(n)}}:{type:t,value:{parents:1,interior:An.XcmV3Junctions.X2([An.XcmV3Junction.Parachain(e.parachainId),n])}};var Ba="XTokens",Bi=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:o,source:a})=>{let r=a.chain,c=s.chain,i="V3",m=c.usesCexForwarding?hn(r,o,c):t,p=W(m),d=r.getAssetId(n),f=(0,Xa.encodeAssetId)(d),y="transfer";return new Pa.ExtrinsicConfig({module:Ba,func:y,getTx:x=>x.getUnsafeApi().tx[Ba][y]({currency_id:f,amount:e,dest:Sa(i,c,p),dest_weight_limit:{type:"Unlimited"}})})}}),Is=()=>({transfer:Bi});function h(){return{assetConversion:jo,assets:Jo,balances:Zo,ethereumXcm:vs,polkadotXcm:Ds,router:na,utility:aa,xTokens:Is}}function St(t,e){return{prior:function(n){return{build:async s=>t(s)?h().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?h().utility().batchAll([e,...n]).build(s):h().utility().batchAll([...n]).build(s)}}}}var Kt=require("@galacticcouncil/xc-core");var _a=80000n,Da=120000n,Ia=100000n,Ra=2000000n,Rs=15000000000000n;var Ms={};$t(Ms,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Va,AssethubClient:()=>ke,BaseClient:()=>Me,HydrationClient:()=>ne,getAllAssetDepositLimits:()=>Vs,getAssetDepositLimit:()=>Hs,getGlobalWithdrawLimit:()=>Ns});var Ls=require("@galacticcouncil/common"),wn=require("@galacticcouncil/descriptors"),Me=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??wn.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=(0,Ls.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,wn.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=(0,Ls.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,wn.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}};var _e=require("@galacticcouncil/descriptors"),La=require("@galacticcouncil/common"),Nn=require("@polkadot-api/substrate-bindings"),Ha=require("@polkadot-api/utils");var ke=class extends Me{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),o=(0,La.encodeLocation)(s);if(n===0)return!0;let a=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(n));return a&&a.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(s),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,n){let s=new TextEncoder().encode(e),o=(0,Ha.toHex)((0,Nn.Twox128)(s)),a=await this.client._request("state_getStorage",[o]);if(!a)return n;let r=Nn.u128.dec(a);return r===0n?n:r}async calculateDeliveryFee(e,n){let s=_e.XcmVersionedLocation.V5({parents:1,interior:_e.XcmV5Junctions.X1(_e.XcmV5Junction.Parachain(n))}),o=_e.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,_e.XcmVersionedXcm.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,n){let s={parents:1,interior:_e.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,n){let s={parents:1,interior:_e.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,n){let s={parents:1,interior:_e.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};var Ma=require("@galacticcouncil/descriptors");var Va=14400;function Na(t,e,n,s,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,p,d,f;n&&(n.type==="Locked"?(p=n.value,m=o<n.value):(d=n.value[0],f=n.value[1]));let y=s?.type==="Local"?"Local":"External",x=!m&&d!==void 0&&d+Va<=o,C=null;if(r!==null)if(m)C=0n;else if(x)C=r;else{let F=f??a,S=a>F?a-F:0n;C=r>S?r-S:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:p,lastResetBlock:d,baselineIssuance:f,currentIssuance:a,headroom:C,category:y,periodExpired:x}}async function Hs(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),n]);return Na(e,s,o,a,r,c)}async function Vs(t){let[e,n,s,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(n.map(d=>[d.keyArgs[0],d.value])),i=new Map(s.map(d=>[d.keyArgs[0],d.value])),m=new Map(r.map(d=>[d.keyArgs[0],d.value])),p=new Map;for(let d of e){let f=d.keyArgs[0],y=d.value;if(y?.xcm_rate_limit==null)continue;let x=f===0?a:m.get(f)??0n,C=Na(f,y,c.get(f),i.get(f),o,x);p.set(f.toString(),C)}return p}async function Ns(t){let[e,n,s,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=s??void 0,r=a!==void 0&&o<a,[c,i]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:p}=e,d=c;if(!r&&p>0n){let y=o>i?o-i:0n;if(y>0n){let x=y>p?p:y,C=c*x/p;d=c>C?c-C:0n}}let f=r||d>=m?0n:m-d;return{configured:!0,limit:m,windowMs:p,used:d,lastUpdateMs:i,headroom:f,lockdown:r,lockdownUntilMs:a}}var ne=class extends Me{constructor(e){super(e,Ma.hydration)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),o=await this.api().query.AssetRegistry.Assets.getValue(s);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,n){let s=Number(n),o=await this.api().query.Tokens.Accounts.getValue(e,s),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return Hs(this.api(),n)}getAllAssetDepositLimits(){return Vs(this.api())}getGlobalWithdrawLimit(){return Ns(this.api())}};function Pi(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:n})=>{let s=n,o=new ne(s),a=new ke(t.hub),r=Hn(e,s),c=xa(e,s),i=fn(Ve),m=250000000n,p=Ho(Ve,s.parachainId),[d,f,y,x]=await Promise.all([o.calculateDestinationFeeV5(c,w),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,_n),a.calculateDestinationFeeV5(p,w)]),C=j(d,33n),F=j(f,33n),S=j(y,33n),R=j(x,33n)+F,O=C,Z=await a.quoteEtherForDot(i,R),k=j(Z,30n),Ee=k<Rs*2n?Rs*2n:k,ft=j(await a.quoteEtherForDot(i,O),100n),at=j(await a.quoteDotToEther(i,m+S),30n);return{amount:Ee+at+ft,breakdown:{executionFee:Ee,relayerFee:at,remoteEtherFee:ft,hydrationDotFee:O}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:o})=>{let a=s,r=o,c=new ke(t.hub),i=fn(Ve),m=Bs(e,a),[p,d,f]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,_n),c.calculateDestinationFee(m,n)]),y=await r.evmClient.getProvider().getGasPrice(),x=Ra+Da+_a+Ia,C=y*x,F=j(C,10n),S=p+j(d,33n)+j(f,33n),I=j(await c.quoteDotForExactEther(i,F),20n),R=new ne(a),O=Cs({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:je}),Z=j(await R.calculateDestinationFeeV5(O,w),33n);return{amount:S+I+Z,breakdown:{dotRemoteFee:S,dotToEtherSwapAmount:I,etherFeeAmount:F,sourceExecutionFee:Z}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:n,source:s})=>{let o=s,a=n,r=Kt.Snowbridge.fromChain(o),c=new Me(a),i=new ke(t.hub),m=Hn(e,a),[p,d]=await Promise.all([c.calculateDestinationFee(m,w),i.calculateDeliveryFee(m,a.parachainId)]),f=d+j(p,25n),y=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Kt.Abi.Snowbridge,address:r.getGateway(),args:[y,a.parachainId,f],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:f}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:n,source:s})=>{let o=s,a=new ke(t.hub),r=Bs(e,o),c=Hn(e,o),[i,m,p,d,f]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,_n),a.calculateDestinationFee(r,n),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,n)]);return{amount:i+m+j(p,25n)+d+j(f,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:p,returnToSenderDeliveryFee:d,returnToSenderDestinationFee:f}}}})}}function Xi(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let o=n,a=s,r=t?.reserve;if(ya(e,o,a,r),r){let f=new Me(a),y=new Me(r),x=Ps(e,a),C=ga(e,r,a),[F,S]=await Promise.all([f.calculateDestinationFee(x,e),y.calculateDestinationFee(C,e)]),I=S+F,R=j(I,20n),O=R-I;return{amount:R,breakdown:{reserveFee:S,destinationFee:F,margin:O}}}let c=new Me(a),i=ba(e,a),m=await c.calculateDestinationFee(i,e),p=j(m,20n),d=p-m;return{amount:p,breakdown:{totalFee:m,margin:d}}}})}}function _i(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=Kt.Basejump.fromChain(n),o=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Kt.Abi.Basejump,address:s.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function X(){return{Basejump:_i,XcmPaymentApi:Xi,Snowbridge:Pi}}var Di="0";function Ii(){return{build:async({address:t,chain:e})=>{let s=await new ne(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=s?s.toString():Di,a=e.findAssetById(o);return a?a.asset:Jt}}}var Ri=()=>({accountCurrencyMap:Ii});function Cn(){return{multiTransactionPayment:Ri}}var ve=require("@galacticcouncil/xc-core"),Ga=require("@mysten/sui/transactions"),Mn=require("@mysten/sui/utils"),Oa=require("@wormhole-foundation/sdk-base"),Li=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=ve.Ntt.fromChain(r,s),m=ve.Wormhole.fromChain(r),p=ve.Wormhole.fromChain(c),d=r.client,f=e;c instanceof ve.EvmParachain&&(f=await c.getDerivatedAddress(e));let y=Oa.encoding.hex.decode(p.normalizeAddress(f)),x=m.getCoreBridge(),C=i.manager,F=i.transceiver.wormhole,S=i.token,[I,R,O,Z]=await Promise.all([ve.suiPkg.getWormholePackageId(d,x),ve.suiPkg.getCurrentPackageId(d,C),ve.suiPkg.getCurrentPackageId(d,F),ve.suiPkg.getCoinMetadataId(d,S)]),k=new Ga.Transaction,[Ee]=k.splitCoins(k.gas,[k.pure.u64(n)]),[ft]=k.moveCall({target:`${R}::upgrades::new_version_gated`,arguments:[]}),[at,Sn]=k.moveCall({target:`${R}::ntt::prepare_transfer`,typeArguments:[S],arguments:[k.object(C),Ee,k.object(Z),k.pure.u16(p.getWormholeId()),k.pure.vector("u8",Array.from(y)),k.pure.option("vector<u8>",null),k.pure.bool(!1)]}),[us]=k.moveCall({target:`${R}::state::get_next_sequence`,typeArguments:[S],arguments:[k.object(C)]});k.moveCall({target:`${R}::ntt::transfer_tx_sender`,typeArguments:[S],arguments:[k.object(C),ft,k.object(Z),at,k.object(Mn.SUI_CLOCK_OBJECT_ID)]});let[ds]=k.moveCall({target:`${R}::state::create_transceiver_message`,typeArguments:[`${O}::wormhole_transceiver::TransceiverAuth`,S],arguments:[k.object(C),us,k.object(Mn.SUI_CLOCK_OBJECT_ID)]}),[jt]=k.moveCall({target:`${O}::wormhole_transceiver::release_outbound`,typeArguments:[`${R}::auth::ManagerAuth`],arguments:[k.object(F),ds]}),[Bn]=k.splitCoins(k.gas,[k.pure.u64(0n)]);k.moveCall({target:`${I}::publish_message::publish_message`,arguments:[k.object(x),Bn,jt,k.object(Mn.SUI_CLOCK_OBJECT_ID)]});let[gn]=k.moveCall({target:"0x2::coin::from_balance",typeArguments:[S],arguments:[Sn]});return k.mergeCoins(k.gas,[gn]),new ve.MoveConfig({transaction:k,func:"transfer",module:"NttManager"})}}),Wa=()=>({transfer:Li});function Ua(){return{Ntt:Wa}}function Gs(){return{Wormhole:Ua}}var Je=require("@galacticcouncil/xc-core"),Ka=require("@solana/spl-token"),Gn=require("@solana/web3.js"),qa=require("@wormhole-foundation/sdk-base"),za=require("@wormhole-foundation/sdk-definitions"),ja=require("@wormhole-foundation/sdk-solana"),$a=require("@wormhole-foundation/sdk-solana-ntt"),Ll=require("@wormhole-foundation/sdk-definitions-ntt");async function Hi(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(s=>t.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null)}async function Vi(t,e,n){let s=await Hi(t,e);return{instructions:"message"in e?Gn.TransactionMessage.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions,signers:n,lookupTables:s}}var Ni=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=Je.Ntt.fromChain(c,s),p=Je.Wormhole.fromChain(c),d=Je.Wormhole.fromChain(i),f=e;i instanceof Je.EvmParachain&&(f=await i.getDerivatedAddress(e));let y=new $a.SolanaNtt("Mainnet","Solana",c.connection,{coreBridge:p.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),x=c.getBalanceType(s)===Je.SolanaBalanceType.Native,C=Gn.Keypair.generate(),F=[];for await(let R of y.transfer(new ja.SolanaAddress(o),n,{chain:(0,qa.toChain)(d.getWormholeId()),address:new za.UniversalAddress(d.normalizeAddress(f))},{queue:!1,automatic:!1,wrapNative:x},C)){let{transaction:O,signers:Z}=R.transaction;F.push(await Vi(c.connection,O,Z??[]))}let S=x?BigInt(await(0,Ka.getMinimumBalanceForRentExemptAccount)(c.connection)):0n,I=F[F.length-1];return new Je.ProgramConfig({instructions:I.instructions,signers:I.signers,lookupTables:I.lookupTables,prerequisites:F.slice(0,-1),rentReserve:S,func:"transfer",module:"NttManager"})}}),Ja=()=>({transfer:Ni});function Ya(){return{Ntt:Ja}}function Os(){return{Wormhole:Ya}}var Us={};$t(Us,{Tag:()=>Bt});var Bt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Bt||{});function Qa(t,e){return new Ks.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:b,asset:e,fee:{amount:0,asset:t}},contract:Pe().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Za(t,e){return new Ks.AssetRoute({source:{asset:t,fee:{asset:_},destinationFee:t},destination:{chain:b,asset:e,fee:{amount:X().Basejump().quoteFee(),asset:t}},contract:Pe().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Mi=[Za(Ze,it)],Gi=[Qa(Ze,it)],tr=new er.ChainRoutes({chain:Qt,routes:[...Gi,...Mi]});var kn=require("@galacticcouncil/xc-core");var On=require("@galacticcouncil/xc-core");function Pt(t,e){return new On.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:b,asset:e,fee:{amount:0,asset:t}},contract:Pe().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function se(t,e){return new On.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:b,asset:e,fee:{amount:X().Snowbridge().calculateInboundFee({hub:B}),asset:_}},contract:Pe().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function oe(t,e){return new On.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:b,asset:e,fee:{amount:X().Snowbridge().calculateInboundFeeV1({hub:B}),asset:_}},contract:Pe().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Oi=[Pt(rt,ht),Pt(We,yt),Pt(v,gt),Pt(A,bt),Pt(Ke,xt),Pt(ut,dt),Pt(_,dt)],Wi=[new kn.AssetRoute({source:{asset:_,fee:{asset:_}},destination:{chain:b,asset:_,fee:{amount:X().Snowbridge().calculateInboundFee({hub:B}),asset:_}},contract:Pe().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),se(ie,ie),se(ce,ce),se(me,me),se(ue,ue),se(fe,fe),se(ye,ye),se(be,be),se(le,le),se(de,de),se(pe,pe),se(he,he),se(ge,ge),se(xe,xe),se(v,mt),se(A,ct)],Ui=[new kn.AssetRoute({source:{asset:_,fee:{asset:_}},destination:{chain:b,asset:_,fee:{amount:X().Snowbridge().calculateInboundFeeV1({hub:B}),asset:_}},contract:Pe().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),oe(ie,ie),oe(ce,ce),oe(me,me),oe(ue,ue),oe(fe,fe),oe(ye,ye),oe(be,be),oe(le,le),oe(de,de),oe(pe,pe),oe(he,he),oe(ge,ge),oe(xe,xe),oe(v,mt),oe(A,ct)],nr=new kn.ChainRoutes({chain:E,routes:[...Oi,...Wi,...Ui]});var sr=[tr,nr];var Xt=require("@galacticcouncil/xc-core");var Wn=require("@galacticcouncil/xc-core");var qt=0,Ki=t=>{let{source:e}=t;return!!e.feeSwap},qi=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},or=h().assetConversion().swapTokensForExactTokens({slippage:30});function zi(t,e,n){return new Wn.AssetRoute({source:{asset:t,fee:{asset:w,extra:qt}},destination:{chain:e,asset:t,fee:{amount:n,asset:A}},extrinsic:St(qi,or).prior(h().polkadotXcm().limitedReserveTransferAssets())})}function Un(t,e,n){return new Wn.AssetRoute({source:{asset:t,fee:{asset:t,swap:!t.isEqual(w)}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:St(Ki,or).prior(h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function vn(t,e,n){return new Wn.AssetRoute({source:{asset:t,fee:{asset:w,extra:qt}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function Kn(t){return zi(t,b,.02)}var ji=[new Xt.AssetRoute({source:{asset:w,fee:{asset:w,extra:qt}},destination:{chain:b,asset:w,fee:{amount:.001,asset:w}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Xt.AssetRoute({source:{asset:T,fee:{asset:w,extra:qt}},destination:{chain:b,asset:T,fee:{amount:1e-4,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),vn(A,b,.02),vn(v,b,.02),Kn(lt)],$i=[new Xt.AssetRoute({source:{asset:T,fee:{asset:w,extra:qt}},destination:{chain:qe,asset:T,fee:{amount:.001,asset:T}},extrinsic:h().polkadotXcm().transferAssets()})],Ji=[vn(A,V,.03),vn(v,V,.03)],Yi=[new Xt.AssetRoute({source:{asset:H,fee:{asset:w,extra:qt}},destination:{chain:wt,asset:H,fee:{amount:2.5,asset:H}},extrinsic:h().polkadotXcm().limitedTeleportAssets()})],ar=new Xt.ChainRoutes({chain:At,routes:[Un(A,b,.02),Un(v,b,.02),Un(w,b,.001)]}),rr=new Xt.ChainRoutes({chain:B,routes:[...ji,...$i,...Ji,...Yi]});var Ye=require("@galacticcouncil/xc-core");var Qi=[new Ye.AssetRoute({source:{asset:L},destination:{chain:b,asset:L,fee:{amount:.044306118,asset:L}},extrinsic:h().polkadotXcm().reserveTransferAssets()}),new Ye.AssetRoute({source:{asset:D,fee:{asset:L}},destination:{chain:b,asset:D,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:V}),asset:D}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:M,fee:{asset:L}},destination:{chain:b,asset:M,fee:{amount:2e-6,asset:M}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:Te,fee:{asset:L}},destination:{chain:b,asset:Te,fee:{amount:.01,asset:Te}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:z,fee:{asset:L}},destination:{chain:b,asset:z,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:V}),asset:z}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:q,fee:{asset:L}},destination:{chain:b,asset:q,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:V}),asset:q}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:A,fee:{asset:L}},destination:{chain:b,asset:A,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:A}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new Ye.AssetRoute({source:{asset:v,fee:{asset:L}},destination:{chain:b,asset:v,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:v}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],ir=new Ye.ChainRoutes({chain:ee,routes:[...Qi]});var De=require("@galacticcouncil/xc-core");var Zi=[new De.AssetRoute({source:{asset:D},destination:{chain:b,asset:D,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:z,fee:{asset:D}},destination:{chain:b,asset:z,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:q,fee:{asset:D}},destination:{chain:b,asset:q,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:q}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:w,fee:{asset:D}},destination:{chain:b,asset:w,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:w}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new De.AssetRoute({source:{asset:L,fee:{asset:D}},destination:{chain:b,asset:L,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:ee}),asset:L}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:M,fee:{asset:D}},destination:{chain:b,asset:M,fee:{amount:625e-8,asset:M}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:A,fee:{asset:D}},destination:{chain:b,asset:A,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:A}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:v,fee:{asset:D}},destination:{chain:b,asset:v,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:v}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],e0=[new De.AssetRoute({source:{asset:A,fee:{asset:D}},destination:{chain:B,asset:A,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:v,fee:{asset:D}},destination:{chain:B,asset:v,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:v}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],cr=new De.ChainRoutes({chain:V,routes:[...Zi,...e0]});var ot=require("@galacticcouncil/xc-core");var ae=()=>({asset:Cn().multiTransactionPayment().accountCurrencyMap()});var _t=require("@galacticcouncil/xc-core");var t0=.02,qs=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},zs=h().router().buy({slippage:30});function Ae(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:e,asset:t,fee:{amount:X().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})}function Dt(t,e){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:e,asset:t,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function qn(t){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:B,asset:t,fee:{amount:t0,asset:A}},extrinsic:St(qs,zs).prior(h().polkadotXcm().limitedReserveTransferAssets())})}function js(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:qe,asset:t,fee:{amount:e,asset:t}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:n})})}function Ge(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:n,asset:e,fee:{amount:0,asset:t}},contract:Pe().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Y(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:n,asset:e,fee:{amount:X().Snowbridge().calculateOutboundFee({hub:B}),asset:w}},extrinsic:St(qs,zs).prior(h().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function Q(t,e,n){return new _t.AssetRoute({source:{asset:t,fee:ae()},destination:{chain:n,asset:e,fee:{amount:X().Snowbridge().calculateOutboundFeeV1({hub:B}),asset:w}},extrinsic:St(qs,zs).prior(h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var n0=[Dt(w,B),Dt(T,B),Dt(A,B),Dt(v,B),qn(lt)],s0=[js(T,.05,.005),js(w,.2,.02)],o0=[Ae(L,ee),Ae(D,ee,V),new ot.AssetRoute({source:{asset:M,fee:ae()},destination:{chain:ee,asset:M,fee:{amount:2e-6,asset:M}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:Te,fee:ae()},destination:{chain:ee,asset:Te,fee:{amount:.01,asset:Te}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),Ae(z,ee,V),Ae(q,ee,V),Ae(A,ee,B),Ae(v,ee,B)],a0=[Ae(D,V),Ae(z,V),Ae(q,V),Ae(L,V,ee),new ot.AssetRoute({source:{asset:M,fee:ae()},destination:{chain:V,asset:M,fee:{amount:5e-6,asset:M}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()}),Ae(A,V,B),Ae(v,V,B),new ot.AssetRoute({source:{asset:w,fee:ae()},destination:{chain:V,asset:w,fee:{amount:X().XcmPaymentApi().calculateDestFee({reserve:B}),asset:w}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],r0=[new ot.AssetRoute({source:{asset:H,fee:ae()},destination:{chain:wt,asset:H,fee:{amount:2.5,asset:H}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],i0=[Ae(Ue,an)],c0=[new ot.AssetRoute({source:{asset:we,fee:ae()},destination:{chain:rn,asset:we,fee:{amount:.02,asset:we}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],m0=[new ot.AssetRoute({source:{asset:Fe,fee:ae()},destination:{chain:nn,asset:Fe,fee:{amount:1.1,asset:Fe}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],u0=[Ae(Oe,tn)],d0=[Ge(ht,rt,E),Ge(yt,We,E),Ge(gt,v,E),Ge(bt,A,E),Ge(xt,Ke,E),Ge(dt,_,E)],l0=[Ge(it,Ze,Qt)],p0=[Ge(Ce,Ce,vt),Ge(Re,Re,vt),Ge(Le,Le,vt)],f0=[Ge(Se,Se,mn)],h0=[Y(_,_,E),Y(ie,ie,E),Y(ce,ce,E),Y(me,me,E),Y(ue,ue,E),Y(fe,fe,E),Y(ye,ye,E),Y(be,be,E),Y(ge,ge,E),Y(le,le,E),Y(de,de,E),Y(pe,pe,E),Y(he,he,E),Y(xe,xe,E),Y(mt,v,E),Y(ct,A,E)],y0=[Q(_,_,E),Q(ie,ie,E),Q(ce,ce,E),Q(me,me,E),Q(ue,ue,E),Q(fe,fe,E),Q(ye,ye,E),Q(be,be,E),Q(ge,ge,E),Q(le,le,E),Q(de,de,E),Q(pe,pe,E),Q(he,he,E),Q(xe,xe,E),Q(mt,v,E),Q(ct,A,E)],b0=[Dt(w,At),Dt(A,At),Dt(v,At)],mr=new ot.ChainRoutes({chain:b,routes:[...n0,...o0,...a0,...b0,...l0,...d0,...h0,...p0,...f0,...y0,...c0,...s0,...r0,...u0,...m0,...i0]});var En=require("@galacticcouncil/xc-core");var g0=[new En.AssetRoute({source:{asset:H},destination:{chain:b,asset:H,fee:{amount:.01,asset:H}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],x0=[new En.AssetRoute({source:{asset:H},destination:{chain:B,asset:H,fee:{amount:.1,asset:H}},extrinsic:h().polkadotXcm().limitedTeleportAssets()})],ur=new En.ChainRoutes({chain:wt,routes:[...g0,...x0]});var zn=require("@galacticcouncil/xc-core");var A0=[new zn.AssetRoute({source:{asset:Ue},destination:{chain:b,asset:Ue,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:Ue}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],dr=new zn.ChainRoutes({chain:an,routes:[...A0]});var jn=require("@galacticcouncil/xc-core");var w0=[new jn.AssetRoute({source:{asset:Fe},destination:{chain:b,asset:Fe,fee:{amount:.2,asset:Fe}},extrinsic:h().polkadotXcm().reserveTransferAssets()})],lr=new jn.ChainRoutes({chain:nn,routes:[...w0]});var $n=require("@galacticcouncil/xc-core");var C0=[new $n.AssetRoute({source:{asset:we,fee:{asset:we,extra:.030555}},destination:{chain:b,asset:we,fee:{amount:.03,asset:we}},extrinsic:h().polkadotXcm().reserveTransferAssets()})],pr=new $n.ChainRoutes({chain:rn,routes:[...C0]});var Jn=require("@galacticcouncil/xc-core");var k0=[new Jn.AssetRoute({source:{asset:Oe},destination:{chain:b,asset:Oe,fee:{amount:.205,asset:Oe}},extrinsic:h().polkadotXcm().reserveTransferAssets()})],fr=new Jn.ChainRoutes({chain:tn,routes:[...k0]});var hr=[rr,ar,ir,cr,mr,ur,fr,dr,lr,pr];var Yn=require("@galacticcouncil/xc-core");function $s(t){return new Yn.AssetRoute({source:{asset:t,fee:{asset:Ce}},destination:{chain:b,asset:t,fee:{amount:0,asset:t}},program:Os().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var v0=[$s(Ce),$s(Re),$s(Le)],yr=new Yn.ChainRoutes({chain:vt,routes:[...v0]});var br=[yr];var Qn=require("@galacticcouncil/xc-core");function E0(t){return new Qn.AssetRoute({source:{asset:t,fee:{asset:Se}},destination:{chain:b,asset:t,fee:{amount:0,asset:t}},move:Gs().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var T0=[E0(Se)],gr=new Qn.ChainRoutes({chain:mn,routes:[...T0]});var xr=[gr];var zt=require("@galacticcouncil/xc-core");var F0=require("@galacticcouncil/xc-core");var Tn=.0015;var S0=new zt.AssetRoute({source:{asset:T,fee:{asset:T,extra:Tn}},destination:{chain:B,asset:T,fee:{amount:.002,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),B0=new zt.AssetRoute({source:{asset:T,fee:{asset:T,extra:Tn}},destination:{chain:dn,asset:T,fee:{amount:.0012,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),P0=[new zt.AssetRoute({source:{asset:T,fee:{asset:T,extra:Tn}},destination:{chain:b,asset:T,fee:{amount:.04,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new zt.AssetRoute({source:{asset:w,fee:{asset:T,extra:Tn}},destination:{chain:b,asset:w,fee:{amount:.15,asset:w}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Ar=new zt.ChainRoutes({chain:qe,routes:[B0,S0,...P0]});var Fn=require("@galacticcouncil/xc-core");var Js=()=>({asset:Cn().multiTransactionPayment().accountCurrencyMap()});var X0=[new Fn.AssetRoute({source:{asset:A,fee:Js()},destination:{chain:qe,asset:A,fee:{amount:X().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:h().polkadotXcm().limitedReserveTransferAssets()})],_0=[new Fn.AssetRoute({source:{asset:T,fee:Js()},destination:{chain:qe,asset:T,fee:{amount:.0012,asset:T}},extrinsic:h().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],wr=new Fn.ChainRoutes({chain:dn,routes:[...X0,..._0]});var Cr=[Ar,wr];var D0=[...sr,...hr,...br,...xr,...Cr],kr=new Map(D0.map(t=>[t.chain.key,t]));var Ys=require("@galacticcouncil/xc-core");var It=require("@galacticcouncil/xc-core"),Zn=class extends It.TransferValidation{async validate(e){let{source:n}=e,{chain:s,fee:o,feeBalance:a}=n;if(a.amount<o.amount)throw new It.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:s.name,error:"fee.insufficientBalance"})}},es=class extends It.TransferValidation{async skipFor(e){let{asset:n,source:s}=e,{enabled:o}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=s,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new It.TransferValidationError("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e instanceof It.Parachain)return(await e.getMin(n)).amount;let s=e.getAssetMin(n);return BigInt(s*10**n.decimals)}};var yn=require("@galacticcouncil/xc-core");var ts=class extends yn.TransferValidation{async skipFor(e){let{asset:n,destination:s}=e,o=s.chain;return await new ke(o).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain;if(await new ke(a).getSystemAccountBalance(s)===0n)throw new yn.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},ns=class extends yn.TransferValidation{async validate(e){let{asset:n,sender:s,source:o}=e,a=o.chain;if(await new ke(a).checkIfFrozen(s,n))throw new yn.TransferValidationError("Asset_Frozen",{asset:n.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var Qe=require("@galacticcouncil/xc-core");var I0=12,R0=1,L0=18,ss=class extends Qe.TransferValidation{async skipFor(e){let{destination:n}=e,s=n.chain,o=new ne(s),a=n.balance.amount>0n,r=await o.checkIfSufficient(n.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain,r=new ne(a),c=await r.getFeeAsset(s),i=a.findAssetById(c),m=i.min||R0,p=i.decimals||I0,d=m*Math.pow(10,p),f=await r.getAssetBalance(s,c);if(BigInt(d*1.1)>f)throw new Qe.TransferValidationError("Insufficient_Ed",{amount:d,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},os=class extends Qe.TransferValidation{async validate(e){let{amount:n,asset:s,destination:o}=e,a=o.chain,c=await new ne(a).getAssetDepositLimit(s);if(c.locked)throw new Qe.TransferValidationError("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&n>c.headroom)throw new Qe.TransferValidationError("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},as=class extends Qe.TransferValidation{async validate(e){let{source:n}=e,s=n.chain,a=await new ne(s).getGlobalWithdrawLimit();if(a.lockdown)throw new Qe.TransferValidationError("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},rs=class extends Qe.TransferValidation{async skipFor(e){let{source:n,transact:s}=e,{enabled:o}=n.destinationFeeSwap||{};return!(!!s&&s.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:s,source:o}=e,a=o.chain,r=new ne(a),c=a.getBalanceAssetId(Ie),i=a.getAssetDecimals(Ie)||L0,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(s,c.toString())<BigInt(m))throw new Qe.TransferValidationError("Insufficient_Ed",{amount:1,asset:Ie.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var re={isAny:()=>!0,isHydration:t=>t instanceof Ys.Parachain&&t.parachainId===2034,isHub:t=>t instanceof Ys.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},vr=[new Zn(re.isAny,re.isAny),new es(re.isAny,re.isAny),new ts(re.isAny,re.isHub),new ns(re.isHub,re.isAny),new ss(re.isAny,re.isHydration),new rs(re.isHydration,re.isAny),new os(re.isAny,re.isHydration),new as(re.isHydration,re.isAny)];var to={};$t(to,{AssethubDex:()=>eo,HydrationDex:()=>Qs});var bn=require("@galacticcouncil/sdk-next"),Tr=require("@galacticcouncil/common"),Fr=require("polkadot-api");var Er=(t,e=new Map)=>n=>{let s;return e.has(n)?e.get(n):(e.set(n,s=t(n)),s)};var{PoolType:is}=bn.pool,{TradeRouteBuilder:H0,TradeRouter:V0}=bn.sor,{TxBuilderFactory:N0}=bn.tx,Qs=class{chain;client;poolCtx;txBuilder;getCtx=Er(async e=>{console.log("init swap router",e,"\u2705");let n=new V0(this.poolCtx);return n.withFilter({useOnly:[is.Aave,is.Omni,is.Stable,is.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new ne(this.chain),this.txBuilder=new N0(n.client,n.evm)}async getCalldata(e,n,s,o,a=0){let r=Number(this.chain.getMetadataAssetId(n)),c=Number(this.chain.getMetadataAssetId(s)),i=o.amount,m=await this.getCtx(1),p=await m.getMostLiquidRoute(r,c),d=await m.getBuy(r,c,i,p),x=await(await this.txBuilder.trade(d).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Fr.Binary.toHex(x)}async getQuote(e,n,s,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(n)),c=s.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),p=await i.getBuy(a,r,c,m);return{amount:p.amountIn,route:H0.build(p.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,s.amount)};throw m}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*n,r=Math.pow(10,Tr.RUNTIME_DECIMALS);return a/BigInt(r)}};var Zs=require("@galacticcouncil/common"),eo=class{chain;client;constructor(e){this.chain=e,this.client=new ke(this.chain)}async getCalldata(e,n,s,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(n),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,Zs.encodeLocation)(o),(0,Zs.encodeLocation)(a),s.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};var Xr=require("@galacticcouncil/xc-core");var Sr=require("@galacticcouncil/xc-core");function cs(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new Sr.Asset({key:[o,n,e].join("_"),originSymbol:s})}function Br(t){let{decimals:e,id:n}=t;return{asset:cs(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function Pr(t){let{decimals:e,id:n,internalId:s,origin:o}=t;return{asset:cs(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var ms=class extends Xr.ConfigService{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),o=a=>!!n.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=cs(a),c=Br(a),i=Pr(a);console.log("\u{1F480} Registering "+r.key),s.updateAsset(c),n.updateAsset(i),this.updateAsset(r),this.updateChainRoute(s,Kn(r)),this.updateChainRoute(n,qn(r))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
package/build/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Ka=Object.defineProperty;var Ut=(t,e)=>{for(var n in e)Ka(t,n,{get:e[n],enumerable:!0})};import{Asset as b}from"@galacticcouncil/xc-core";var re=new b({key:"aave",originSymbol:"AAVE"}),Xn=new b({key:"ajun",originSymbol:"AJUN"}),ie=new b({key:"apyusd",originSymbol:"apyUSD"}),I=new b({key:"astr",originSymbol:"ASTR"}),X=new b({key:"bnc",originSymbol:"BNC"}),_n=new b({key:"bsx",originSymbol:"BSX"}),ce=new b({key:"cfg_new",originSymbol:"CFG"}),Dn=new b({key:"cru",originSymbol:"CRU"}),Je=new b({key:"dai",originSymbol:"DAI"}),ot=new b({...Je,key:"dai_wh"}),x=new b({key:"dot",originSymbol:"DOT"}),B=new b({key:"eth",originSymbol:"ETH"}),me=new b({key:"ena",originSymbol:"ENA"}),We=new b({key:"eurc",originSymbol:"EURC"}),Ye=new b({...We,key:"eurc_wh"}),Pe=new b({key:"glmr",originSymbol:"GLMR"}),_t=new b({key:"hdx",originSymbol:"HDX"}),N=new b({key:"ibtc",originSymbol:"IBTC"}),Ee=new b({key:"intr",originSymbol:"INTR"}),Xe=new b({key:"jitoSol",originSymbol:"jitoSOL"}),v=new b({key:"ksm",originSymbol:"KSM"}),ue=new b({key:"ldo",originSymbol:"LDO"}),de=new b({key:"lbtc",originSymbol:"LBTC"}),we=new b({key:"ewt",originSymbol:"EWT"}),le=new b({key:"link",originSymbol:"LINK"}),L=new b({key:"myth",originSymbol:"MYTH"}),He=new b({key:"neuro",originSymbol:"NEURO"}),Te=new b({key:"pen",originSymbol:"PEN"}),pe=new b({key:"paxg",originSymbol:"PAXG"}),_e=new b({key:"prime",originSymbol:"PRIME"}),fe=new b({key:"sky",originSymbol:"SKY"}),Ce=new b({key:"sol",originSymbol:"SOL"}),Fe=new b({key:"sui",originSymbol:"SUI"}),he=new b({key:"susde",originSymbol:"sUSDe"}),Ve=new b({key:"susds",originSymbol:"sUSDS"}),at=new b({...Ve,key:"susds_wh"}),ye=new b({key:"tbtc",originSymbol:"tBTC"}),be=new b({key:"trac",originSymbol:"TRAC"}),Ne=new b({key:"unq",originSymbol:"UNQ"}),g=new b({key:"usdt",originSymbol:"USDT"}),rt=new b({...g,key:"usdt_wh"}),Qe=new b({...g,key:"usdt_eth"}),C=new b({key:"usdc",originSymbol:"USDC"}),it=new b({...C,key:"usdc_wh"}),Ze=new b({...C,key:"usdc_eth"}),U=new b({key:"vastr",originSymbol:"vASTR"}),K=new b({key:"vdot",originSymbol:"vDOT"}),et=new b({key:"weth",originSymbol:"WETH"}),tt=new b({...et,key:"weth_wh"}),Me=new b({key:"wbtc",originSymbol:"WBTC"}),ct=new b({...Me,key:"wbtc_wh"}),ge=new b({key:"wsteth",originSymbol:"wstETH"}),nt=new b({key:"wud",originSymbol:"WUD"}),qa=[re,Xn,ie,I,_n,ce,Dn,X,Je,ot,x,me,We,Ye,B,Pe,_t,N,Ee,v,ue,de,we,Xe,le,L,He,pe,Te,_e,fe,Ce,Fe,he,Ve,at,be,ye,Ne,C,it,Ze,g,rt,Qe,U,K,Me,ct,et,tt,ge,nt],ja=new Map(qa.map(t=>[t.key,t]));import{ChainEcosystem as za,EvmChain as $a,EvmBalanceType as Ja}from"@galacticcouncil/xc-core";import{base as Ya}from"viem/chains";var Dt=new $a({id:8453,key:"base",name:"Base",assetsData:[{asset:B,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:We,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:C,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Ja.Erc20,ecosystem:za.Ethereum,evmChain:Ya,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[We.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});import{ChainEcosystem as Qa,EvmChain as Za,EvmBalanceType as ks}from"@galacticcouncil/xc-core";import{mainnet as er}from"viem/chains";var k=new Za({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:B,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:re,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ie,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:ce,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:et,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:Je,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:me,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:he,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ve,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:ye,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Me,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:de,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:C,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:g,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ue,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:le,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:pe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:fe,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:be,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:ks.Erc20,balanceOverrides:{[B.key]:ks.Native},ecosystem:Qa.Ethereum,evmChain:er,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[Je.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[Ve.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[C.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[g.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[Me.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[et.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[B.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var vs=[Dt,k];import{ChainEcosystem as tr,Parachain as Es,SubstrateBalanceType as Zt,SubstrateMinType as nr}from"@galacticcouncil/xc-core";var Ts={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:nt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:L,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:v,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Zt.Assets,balanceOverrides:{[x.key]:Zt.System,[v.key]:Zt.ForeignAssets,[L.key]:Zt.ForeignAssets},min:nr.Assets,ecosystem:tr.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"]},F=new Es({...Ts,key:"assethub",name:"AssetHub Polkadot"}),mt=new Es({...Ts,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as sr,Parachain as or,SubstrateBalanceType as Fs}from"@galacticcouncil/xc-core";var Y=new or({assetsData:[{asset:I,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:X,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ee,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Fs.Assets,balanceOverrides:{[I.key]:Fs.System},ecosystem:sr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as ar,Parachain as rr,SubstrateBalanceType as Ss}from"@galacticcouncil/xc-core";var ir=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],H=new rr({assetsData:[{asset:X,id:{Native:X.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:I,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:Pe,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Ss.Tokens,balanceOverrides:{[X.key]:Ss.System},ecosystem:ar.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:ir});import{ChainEcosystem as dr,EvmParachain as lr,SubstrateBalanceType as Ps}from"@galacticcouncil/xc-core";import{defineChain as pr}from"viem";import{h160 as cr}from"@galacticcouncil/common";import{AccountId as mr}from"polkadot-api";var{isEvmAccount:ur,H160:Bs}=cr,en=class{async toH160(e,n){if(ur(e))return Bs.fromAccount(e);let s=Bs.fromSS58(e);if(n&&await this.isBound(n,s,e))return s;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,n,s){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(n);if(!a)return!1;let r=mr().enc(s),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var fr=new en,In=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Rn=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],hr=pr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:In,webSocket:Rn},default:{http:In,webSocket:Rn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new lr({assetsData:[{asset:_t,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:re,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Xn,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:I,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:X,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ce,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Dn,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ot,decimals:18,id:18,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f"}}]}}},{asset:B,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:ie,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:me,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:Pe,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ee,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Xe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0xfcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd"}}]}}},{asset:_e,decimals:6,id:43,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x26759f460ee5f743ed66d27c8f2a5623bf39d53ed575955320661e6e13e0e3da"}}]}}},{asset:we,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:ue,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:v,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:de,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:le,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:pe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:L,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:He,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Te,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:fe,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Ce,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001"}}]}}},{asset:Fe,decimals:9,id:1000753,min:.003,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:21},{GeneralKey:{length:32,data:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}]}}},{asset:he,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ve,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:at,decimals:18,id:1000745,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:ye,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:be,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ne,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:C,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:it,decimals:6,id:21,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:Ye,decimals:6,id:44,min:.014,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:30},{GeneralKey:{length:32,data:"0x00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42"}}]}}},{asset:Ze,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:g,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:rt,decimals:6,id:23,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Qe,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:U,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Me,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ct,decimals:8,id:19,min:34e-8,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:et,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:tt,decimals:18,id:20,min:54e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{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}]}}}],balance:Ps.Tokens,balanceOverrides:{[_t.key]:Ps.System},ecosystem:dr.Polkadot,evmChain:hr,evmResolver:fr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[ot.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Ye.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Xe.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[_e.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Ce.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Fe.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[at.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[it.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[rt.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[ct.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[tt.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Rn,rpcs:In});import{ChainEcosystem as yr,Parachain as br,SubstrateBalanceType as gr}from"@galacticcouncil/xc-core";var ut=new br({assetsData:[{asset:L,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:gr.System,ecosystem:yr.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});import{ChainEcosystem as xr,Parachain as Ar,SubstrateBalanceType as wr}from"@galacticcouncil/xc-core";var It=new Ar({assetsData:[{asset:He,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:wr.System,ecosystem:xr.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 Cr,Parachain as kr,XcmVersion as vr,SubstrateBalanceType as Er}from"@galacticcouncil/xc-core";var Rt=new kr({assetsData:[{asset:Te,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Er.System,ecosystem:Cr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:vr.v3});import{ChainEcosystem as Tr,Parachain as Fr,SubstrateBalanceType as Sr}from"@galacticcouncil/xc-core";var Br={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:Sr.System,ecosystem:Tr.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"},Xs=new Fr({...Br,key:"polkadot"});import{ChainEcosystem as Pr,Parachain as Xr,SubstrateBalanceType as _r}from"@galacticcouncil/xc-core";var Lt=new Xr({assetsData:[{asset:Ne,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:_r.System,ecosystem:Pr.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 Dr,Parachain as Ir,XcmVersion as Rr,SubstrateBalanceType as Lr}from"@galacticcouncil/xc-core";var Ht=new Ir({assetsData:[{asset:we,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Lr.System,ecosystem:Dr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Rr.v3});var _s=[F,mt,Y,H,h,It,ut,Rt,Xs,Lt,Ht];import{ChainEcosystem as Hr,SolanaChain as Vr,SolanaBalanceType as Ds}from"@galacticcouncil/xc-core";var dt=new Vr({id:101,key:"solana",name:"Solana",assetsData:[{asset:Ce,decimals:9},{asset:Xe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:_e,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Ds.Token,balanceOverrides:{[Ce.key]:Ds.Native},ecosystem:Hr.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",ntt:{[Ce.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Xe.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[_e.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Is=[dt];import{ChainEcosystem as Nr,SuiChain as Mr,SuiBalanceType as Gr}from"@galacticcouncil/xc-core";var Vt=new Mr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Fe,decimals:9}],balance:Gr.Native,ecosystem:Nr.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[Fe.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var Rs=[Vt];import{ChainEcosystem as Or,Parachain as Wr,SubstrateBalanceType as Ls,SubstrateMinType as Ur}from"@galacticcouncil/xc-core";var Ge=new Wr({assetsData:[{asset:v,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:g,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Ls.Assets,balanceOverrides:{[v.key]:Ls.System},min:Ur.Assets,ecosystem:Or.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 Kr,Parachain as qr,SubstrateBalanceType as jr}from"@galacticcouncil/xc-core";var Nt=new qr({assetsData:[{asset:_n,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:v,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:jr.Tokens,ecosystem:Kr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Hs=[Ge,Nt];var zr=[...vs,..._s,...Is,...Rs,...Hs],$r=new Map(zr.map(t=>[t.key,t]));import{ChainRoutes as Bc}from"@galacticcouncil/xc-core";import{AssetRoute as ra}from"@galacticcouncil/xc-core";var oa={};Ut(oa,{ContractBuilder:()=>Se,ExtrinsicBuilder:()=>p,ExtrinsicDecorator:()=>xt,FeeAmountBuilder:()=>S,FeeAssetBuilder:()=>jt,MoveBuilder:()=>ds,ProgramBuilder:()=>ls,XcmTransferType:()=>Be,XcmVersion:()=>qe});import{Abi as Vs,ContractConfig as Jr,Precompile as Yr}from"@galacticcouncil/xc-core";import{encodeFunctionData as Qr}from"viem";var Zr=t=>({build:async e=>{let n=await Promise.all(t.map(r=>r.build(e))),s=n.map(r=>r.address),o=[0,0],a=n.map(r=>Qr({abi:Vs[r.module],functionName:r.func,args:r.args}));return new Jr({abi:Vs.Batch,address:Yr.Batch,args:[s,o,a,[]],func:"batchAll",module:"Batch"})}}),Ns=()=>({batchAll:Zr});import{Abi as ei,ContractConfig as ti,Wormhole as ni}from"@galacticcouncil/xc-core";function q(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function vt(t){return typeof t=="object"?Object.values(t)[0]:t}function Ms(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:o,transact:a}=e,r=a?a.chain:o.chain,c=ni.fromChain(r),i=r.getAssetId(s);return new ti({abi:ei.Erc20,address:vt(i).toString(),args:[t(c),n],func:"approve",module:"Erc20"})}})}}import{Abi as si,Basejump as oi,ContractConfig as ai}from"@galacticcouncil/xc-core";import{h160 as ri}from"@galacticcouncil/common";import{AccountId as ii}from"polkadot-api";import{toHex as ci}from"@polkadot-api/utils";var{H160:mi,isEvmAddress:ui}=ri;function di(t){let e=ui(t)?mi.toAccount(t):t;return ci(ii().enc(e))}var li=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o}=t,a=o.chain,r=oi.fromChain(a),c=a.getAssetId(s);return new ai({abi:si.Basejump,address:r.getAddress(),args:[vt(c),n,di(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Gs=()=>({bridgeViaWormhole:li});import{addr as pi,Abi as Os,ContractConfig as Ws,Precompile as Us}from"@galacticcouncil/xc-core";import{big as fi}from"@galacticcouncil/common";var{Ss58Addr:Ks}=pi;function hi(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Ln(t,e){let n=t.getAssetId(e);return typeof n=="string"?hi(n):n}function qs(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Ln(o.chain,n);return new Ws({abi:Os.PolkadotXcm,address:Us.PolkadotXcm,args:[s.chain.parachainId,Ks.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Ln(o.chain,n),r=Ln(o.chain,o.destinationFeeBalance),c=fi.toBigInt(s.fee.amount,s.fee.decimals);return new Ws({abi:Os.PolkadotXcm,address:Us.PolkadotXcm,args:[s.chain.parachainId,Ks.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Ci,Abi as Zs,ContractConfig as eo,Snowbridge as to}from"@galacticcouncil/xc-core";import{XcmV5Junctions as ki,XcmV5Junction as vi,XcmVersionedXcm as Ei,XcmVersionedLocation as Ti}from"@galacticcouncil/descriptors";import{Blake2256 as Fi}from"@polkadot-api/substrate-bindings";import{toHex as On}from"@polkadot-api/utils";import{encodeAbiParameters as Si}from"viem";import{codec as yi}from"@galacticcouncil/xc-core";var tn=null;async function js(){if(tn)return tn;let t=await yi.getHubCodecs();return tn={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},tn}import{multiloc as gi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as xe,XcmV5AssetFilter as Q,XcmV5Instruction as P,XcmV5Junctions as pt,XcmV5Junction as Ke,XcmV5NetworkId as Hn,XcmV5WildAsset as Ue,XcmVersionedXcm as xi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Ai}from"@polkadot-api/substrate-bindings";import{toHex as wi}from"@polkadot-api/utils";import{XcmV3Junctions as bi}from"@galacticcouncil/descriptors";var j=340282366920938463463374607431768211455n,Oe="0x0000000000000000000000000000000000000000000000000000000000000000",W={parents:1,interior:bi.Here()},zs=0,lt=1e3,nn=1002,De=1,Et="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",$s="0x0000000000000000000000000000000000000000000000000000000000000000",Js="0x0000000000000000000000000000000000000000";var Vn="0x0000000000000000000000000000000000000000",Mt=t=>({parents:2,interior:pt.X1(Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(t)})))}),Nn=(t,e)=>({parents:2,interior:pt.X2([Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(t)})),Ke.AccountKey20({key:e,network:void 0})])});function Ys(t,e){let n=Mt(t),s=Nn(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[P.ReserveAssetDeposited([{id:n,fun:xe.Fungible(o)},{id:s,fun:xe.Fungible(o)}]),P.ExchangeAsset({give:Q.Wild(Ue.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:W,fun:xe.Fungible(a)}],maximal:!1}),P.PayFees({asset:{id:W,fun:xe.Fungible(a)}})],c=Mn({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function Mn(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Mt(e),m=s===Vn?i:Nn(e,s),u=o.length===42&&o.startsWith("0x")?Ke.AccountKey20({key:o,network:void 0}):Ke.AccountId32({id:o,network:void 0}),l={parents:0,interior:pt.X1(u)};return[P.SetAppendix([P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})]),P.ExchangeAsset({give:Q.Wild(Ue.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:W,fun:xe.Fungible(r)}],maximal:!1}),P.InitiateTransfer({destination:{parents:1,interior:pt.X1(Ke.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:Q.Definite([{id:W,fun:xe.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:Q.Definite([{id:m,fun:xe.Fungible(a)}])}],remote_xcm:[P.DepositAsset({assets:Q.Wild(Ue.AllCounted(3)),beneficiary:l}),P.SetTopic(c)]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l}),P.SetTopic(c)]}function Gn(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,d=Mt(De),u=e===Vn?d:Nn(De,e),l={parents:0,interior:pt.X1(Ke.AccountId32({id:n,network:void 0}))},f={parents:0,interior:pt.X1(Ke.AccountKey20({key:s,network:void 0}))},y={parents:2,interior:pt.X1(Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(De)})))},A=[P.DepositAsset({assets:Q.Wild(Ue.AllCounted(3)),beneficiary:f}),P.SetTopic(m)],E=[P.SetAppendix([P.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})])];E.push(P.ExchangeAsset({give:Q.Definite([{id:W,fun:xe.Fungible(c)}]),want:[{id:d,fun:xe.Fungible(i)}],maximal:!1}));let T=[{type:"ReserveWithdraw",value:Q.Wild(Ue.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],_=Q.Definite([{id:d,fun:xe.Fungible(i)}]);E.push(P.InitiateTransfer({destination:y,remote_fees:{type:"ReserveWithdraw",value:_},preserve_origin:!0,assets:T,remote_xcm:A}),P.SetTopic(m));let D=a+r+c,G=[{id:W,fun:xe.Fungible(D)},{id:u,fun:xe.Fungible(o)}],J=[{id:W,fun:xe.Fungible(a)}],w={type:"ReserveWithdraw",value:Q.Wild(Ue.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},ve=[{type:"ReserveWithdraw",value:Q.Definite([{id:W,fun:xe.Fungible(c)}])},w];return[P.WithdrawAsset(G),P.PayFees({asset:J[0]}),P.SetAppendix([P.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})]),P.InitiateTransfer({destination:{parents:1,interior:pt.X1(Ke.Parachain(lt))},remote_fees:{type:"ReserveWithdraw",value:Q.Definite([{id:W,fun:xe.Fungible(r)}])},preserve_origin:!0,assets:ve,remote_xcm:E}),P.SetTopic(m)]}function Qs(t){let{address:e,amount:n,asset:s,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=Ai(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let d=wi(m.publicKey),u=i.getAssetXcmLocation(s),l=u?gi.findNestedKey(u,"key"):void 0,f=l?l.key:Vn,y=r.feeBreakdown,A=y.sourceExecutionFee??0n,E=y.dotRemoteFee??0n,T=y.dotToEtherSwapAmount??0n,_=y.etherFeeAmount??0n,G=Gn({tokenAddress:f,senderPubKey:d,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:A,dotRemoteFee:E,dotToEtherSwapAmount:T,etherFeeAmount:_,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return xi.V5(G)}var{Ss58Addr:no}=Ci,Bi="0x0000000000000000000000000000000000000000",Pi=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=to.fromChain(c),d=c.getAssetId(s),u=vt(d),l=s.originSymbol==="ETH",f=r.feeBreakdown.executionFee,y=r.feeBreakdown.relayerFee,A=r.feeBreakdown.hydrationDotFee,E=r.fee.amount,T=no.getPubKey(e),_=new TextEncoder().encode(`${i.parachainId}${o}${u}${T}${n}${Date.now()}`),D=On(Fi(_)),G=Mn({ethChainId:De,destinationParaId:i.parachainId,tokenAddress:l?Bi:u,beneficiaryHex:T,tokenAmount:n,hydrationDotFee:A,topic:D}),J=await js(),w=On(J.message.enc(Ei.V5(G))),ve=[];l||ve.push(Si([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,n]));let st=J.location.enc(Ti.V5({parents:0,interior:ki.X1(vi.AccountId32({id:T,network:void 0}))})),$e=On(st.slice(1));return new eo({abi:Zs.Snowbridge,address:m.getGateway(),args:[w,ve,$e,f,y],value:l?E+n:E,func:"v2_sendMessage",module:"Snowbridge"})}}),Xi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=to.fromChain(r),m=r.getAssetId(s),d=vt(m),u=s.originSymbol==="ETH",l=a.feeBreakdown.bridgeFeeInDot,f=a.fee.amount;return new eo({abi:Zs.Snowbridge,address:i.getGateway(),args:[d,c.parachainId,[1,no.getPubKey(e)],l,n],value:u?f+n:f,func:"sendToken",module:"Snowbridge"})}}),so=()=>({v2SendMessage:Pi,sendToken:Xi});import{Abi as oo,ContractConfig as _i,EvmBalanceType as Di,EvmParachain as Ii,Ntt as Ri,Wormhole as Li}from"@galacticcouncil/xc-core";var Hi="0x00",ao=8,Vi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Ri.fromChain(r,s),m=Li.fromChain(c),d=e;c instanceof Ii&&(d=await c.getDerivatedAddress(e));let u=r,l=await u.evmClient.getProvider().readContract({abi:oo.NttManager,address:i.manager,args:[m.getWormholeId(),Hi],functionName:"quoteDeliveryPrice"}),f=u.getAssetDecimals(s)??0,y=n;if(f>ao){let A=10n**BigInt(f-ao);y=n-n%A}return new _i({abi:oo.NttManager,address:i.manager,args:[y,m.getWormholeId(),m.normalizeAddress(d)],token:i.token,wrapNative:u.getBalanceType(s)===Di.Native,value:l[1],func:"transfer",module:"NttManager"})}}),ro=()=>({transfer:Vi});function io(){return{Ntt:ro}}function Se(){return{Batch:Ns,Erc20:Ms,Basejump:Gs,PolkadotXcm:qs,Snowbridge:so,Wormhole:io}}import{encodeLocation as co}from"@galacticcouncil/common";import{ExtrinsicConfig as Ni}from"@galacticcouncil/xc-core";var mo="AssetConversion",Mi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:o}=s,a=s.destinationFeeSwap||s.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,m=co(i.getAssetXcmLocation(r)),d=co(i.getAssetXcmLocation(c)),u=r.amount+r.amount*BigInt(t.slippage)/100n,l=c.amount;return new Ni({module:mo,func:e,getTx:f=>f.getUnsafeApi().tx[mo][e]({path:[m,d],amount_out:l,amount_in_max:u,send_to:n,keep_alive:!0})})}}},uo=()=>({swapTokensForExactTokens:Mi});import{hub as Gi,MultiAddress as Oi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Wi}from"@galacticcouncil/xc-core";var Ui="Assets",Ki=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:o})=>{let a=o.chain,{fee:r}=o,c=n>r.amount?n-r.amount:n,i=a.getMetadataAssetId(e);return new Wi({module:Ui,func:t,getTx:m=>m.getTypedApi(Gi).tx.Assets.transfer({id:Number(i),target:Oi.Id(s),amount:c})})}}},lo=()=>({transfer:Ki});import{ExtrinsicConfig as qi}from"@galacticcouncil/xc-core";var po="Balances",ji=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new qi({module:po,func:e,getTx:s=>s.getUnsafeApi().tx[po][e]({dest:n,keep_alive:t})})}},fo=()=>({transferAll:ji});import{hydration as zi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as $i}from"@galacticcouncil/xc-core";var Ji="Router",Yi=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:o}=n;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=s,m=i.getMetadataAssetId(a),d=i.getMetadataAssetId(r),u=r.amount,l=a.amount+a.amount*BigInt(t.slippage)/100n;return new $i({module:Ji,func:"buy",getTx:f=>f.getTypedApi(zi).tx.Router.buy({asset_in:Number(m),asset_out:Number(d),amount_out:u,max_amount_in:l,route:c})})}}),ho=()=>({buy:Yi});import{ExtrinsicConfig as Qi}from"@galacticcouncil/xc-core";var yo="Utility",Zi=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(o=>o.build(n)));return new Qi({module:yo,func:e,getTx:o=>{let a=s.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[yo][e]({calls:a})}})}}},bo=()=>({batchAll:Zi});import{Abi as e0,ExtrinsicConfig as t0}from"@galacticcouncil/xc-core";import{Binary as n0}from"polkadot-api";import{encodeFunctionData as s0}from"viem";var qe=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(qe||{}),Be=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Be||{});var go="EthereumXcm",o0=t=>{let e="transact";return{build:async n=>{let s=await t.build(n),o="V1",a=s0({abi:e0[s.module],functionName:s.func,args:s.args});return new t0({module:go,func:e,getTx:r=>r.getUnsafeApi().tx[go][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:s.address},value:[0n,0n,0n,0n],input:n0.fromHex(a),access_list:void 0}}})})}}},Wn=()=>({transact:o0});import{ExtrinsicConfig as gt}from"@galacticcouncil/xc-core";import{big as un}from"@galacticcouncil/common";import{multiloc as Xo,ChainEcosystem as ts}from"@galacticcouncil/xc-core";import{XcmV3Junctions as Z,XcmV3Junction as Tt,XcmV3JunctionNetworkId as Bo,XcmV3MultiassetFungibility as ft,XcmV4Instruction as R,XcmV4AssetAssetFilter as ht,XcmV4AssetWildAsset as yt,XcmV3WeightLimit as mn,XcmV2MultiassetWildFungibility as S0,XcmV2OriginKind as B0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as g0,XcmV3MultiassetFungibility as Kn,XcmV3WeightLimit as x0,XcmV4AssetAssetFilter as A0,XcmV4AssetWildAsset as w0,XcmV4Instruction as Kt}from"@galacticcouncil/descriptors";import{acc as a0}from"@galacticcouncil/common";import{XcmV3Junction as xo}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as r0}from"@polkadot-api/substrate-bindings";import{toHex as i0}from"@polkadot-api/utils";function O(t){if(t.length===42&&t.startsWith("0x"))return xo.AccountKey20({key:t,network:void 0});let n=r0(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return xo.AccountId32({id:i0(n.publicKey),network:void 0})}function Gt(t,e,n){return a0.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}import{multiloc as Ao}from"@galacticcouncil/xc-core";function wo(t,e){let n=Ao.findNestedKey(t,"GeneralIndex"),s=Ao.findNestedKey(e,"GeneralIndex"),o=n&&n.GeneralIndex,a=s&&s.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function V(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var an={};Ut(an,{ETHER_TOKEN_ADDRESS:()=>Un,erc20Location:()=>u0,erc20LocationReanchored:()=>d0,ethereumLocation:()=>ko,parachainLocation:()=>m0});import{XcmV3Junctions as sn,XcmV3Junction as on,XcmV3JunctionNetworkId as c0}from"@galacticcouncil/descriptors";var Un="0x0000000000000000000000000000000000000000",Co=t=>on.GlobalConsensus(c0.Ethereum({chain_id:BigInt(t)}));function ko(t){return{parents:2,interior:sn.X1(Co(t))}}function m0(t){return{parents:1,interior:sn.X1(on.Parachain(t))}}function u0(t,e){return e===Un?ko(t):{parents:2,interior:sn.X2([Co(t),on.AccountKey20({key:e})])}}function d0(t){return t===Un?{parents:0,interior:{type:"Here"}}:{parents:0,interior:sn.X1(on.AccountKey20({key:t}))}}import{encodeLocation as vo}from"@galacticcouncil/common";import{multiloc as l0}from"@galacticcouncil/xc-core";function M(t,e){return p0(e)>=4?vo(t):f0(t)}function p0(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function f0(t){return{type:"Concrete",value:vo(t)}}var h0=1e3;function y0(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function b0(t){if(t)return y0(t)?h0:l0.findParachain(t)}function Eo(t,e,n,s){let o=e.getAssetXcmLocation(t),a=b0(o),r=s?.parachainId??n.parachainId;if(a&&r!==a)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${s.name} (${s.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function rn(t,e){let n="V4",s=M(V(e,t),n),o=Oe;return[Kt.ReserveAssetDeposited([{id:W,fun:Kn.Fungible(j)},{id:s,fun:Kn.Fungible(j)}]),Kt.ClearOrigin(),Kt.BuyExecution({fees:{id:W,fun:Kn.Fungible(j)},weight_limit:x0.Unlimited()}),Kt.DepositAsset({assets:A0.Wild(w0.AllCounted(2)),beneficiary:{parents:0,interior:g0.X1(O(Et))}}),Kt.SetTopic(o)]}import{XcmV4Instruction as qn,XcmV3MultiassetFungibility as jn,XcmV3WeightLimit as C0}from"@galacticcouncil/descriptors";function zn(t,e){let n="V4",s=M(V(e,t),n),o=cn("V4",O(Js),O(Et),s,Oe);return[qn.WithdrawAsset([{id:W,fun:jn.Fungible(j)},{id:s,fun:jn.Fungible(j)}]),qn.ClearOrigin(),qn.BuyExecution({fees:{id:W,fun:jn.Fungible(j)},weight_limit:C0.Unlimited()}),...o.value]}import{XcmV3Junctions as $n,XcmV3Junction as k0,XcmV3MultiassetFungibility as qt,XcmV3WeightLimit as Jn,XcmV4AssetAssetFilter as Yn,XcmV4AssetWildAsset as Qn,XcmV4Instruction as Ie}from"@galacticcouncil/descriptors";function To(t,e){let n="V4",s=M(V(e,t),n),o=Oe;return[Ie.WithdrawAsset([{id:s,fun:qt.Fungible(j)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:s,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositAsset({assets:Yn.Wild(Qn.AllCounted(1)),beneficiary:{parents:0,interior:$n.X1(O(Et))}}),Ie.SetTopic(o)]}function Zn(t,e){let n="V4",s=M(V(e,t),n);return[Ie.BuyExecution({fees:{id:s,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositAsset({assets:Yn.Wild(Qn.AllCounted(1)),beneficiary:{parents:0,interior:$n.X1(O(Et))}})]}function Fo(t,e,n){let s="V4",o=M(V(e,t),s),a=Oe,r=Zn(t,n);return[Ie.WithdrawAsset([{id:o,fun:qt.Fungible(j)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:o,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositReserveAsset({assets:Yn.Wild(Qn.AllCounted(1)),dest:{parents:1,interior:$n.X1(k0.Parachain(n.parachainId))},xcm:r}),Ie.SetTopic(a)]}import{XcmV3MultiassetFungibility as es,XcmV5AssetFilter as v0,XcmV5Instruction as Ot,XcmV5Junctions as E0,XcmV5Junction as T0,XcmV5WildAsset as F0}from"@galacticcouncil/descriptors";function So(t,e){let n="V5",s=M(V(e,t),n),o={parents:0,interior:E0.X1(T0.AccountId32({id:$s,network:void 0}))};return[Ot.ReserveAssetDeposited([{id:W,fun:es.Fungible(j)}]),Ot.PayFees({asset:{id:W,fun:es.Fungible(j)}}),Ot.ReserveAssetDeposited([{id:s,fun:es.Fungible(j)}]),Ot.ClearOrigin(),Ot.DepositAsset({assets:v0.Wild(F0.AllCounted(3)),beneficiary:o}),Ot.SetTopic(Oe)]}var Po=[ts.Polkadot,ts.Kusama],P0={parents:1,interior:Z.X1(Tt.Parachain(1e3))},X0=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},_o=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Po.includes(t.ecosystem)&&Po.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Do=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},je=(t,e,n)=>{if(_o(e,n))return{type:t,value:ns(n.ecosystem,n.parachainId)};if(n.parachainId===zs)return{type:t,value:{parents:1,interior:Z.Here()}};let s=n.key==="ethereum"?lt:n.parachainId;return{type:t,value:{parents:1,interior:Z.X1(Tt.Parachain(s))}}},_0=t=>t===ts.Kusama?Bo.Kusama():Bo.Polkadot(),ns=(t,e)=>({parents:2,interior:Z.X2([Tt.GlobalConsensus(_0(t)),Tt.Parachain(e)])}),Io=(t,e,n,s)=>{if(_o(e,n)){if(e.parachainId!==lt){let o=Xo.findGlobalConsensus(V(e,s)),a=typeof o=="string"&&o===n.ecosystem;return{dest:{type:t,value:{parents:1,interior:Z.X1(Tt.Parachain(lt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(n.parachainId!==lt)return{dest:{type:t,value:ns(n.ecosystem,lt)},mode:"onward"}}},Ft=(t,e)=>({type:t,value:{parents:0,interior:Z.X1(e)}}),ss=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:X0(n)?P0:n}}:{type:e},bt=(t,e)=>({id:t,fun:ft.Fungible(e)}),Ro=(t,e,n)=>({type:t,value:[R.DepositAsset({assets:ht.Wild(yt.AllCounted(n)),beneficiary:{parents:0,interior:Z.X1(e)}})]}),cn=(t,e,n,s,o)=>{let a=o;return{type:t,value:[R.SetAppendix([R.DepositAsset({assets:ht.Wild(yt.All()),beneficiary:{parents:0,interior:Z.X1(n)}})]),R.InitiateReserveWithdraw({assets:ht.Wild(yt.AllOf({id:s,fun:S0.Fungible()})),reserve:an.ethereumLocation(De),xcm:[R.BuyExecution({fees:{id:D0(s),fun:ft.Fungible(1n)},weight_limit:mn.Unlimited()}),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}}),R.SetTopic(a)]}),R.SetTopic(a)]}},Lo=(t,e,n,s,o,a)=>{let r=s==="onward"?{parents:1,interior:Z.X1(Tt.Parachain(n.parachainId))}:ns(n.ecosystem,n.parachainId),c={parents:0,interior:Z.X1(e)},i=ht.Wild(yt.AllCounted(1)),m=[R.BuyExecution({fees:{id:o,fun:ft.Fungible(a)},weight_limit:mn.Unlimited()}),R.DepositAsset({assets:i,beneficiary:c})],d=s==="bridge-withdraw"?R.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):R.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[R.SetAppendix([R.DepositAsset({assets:ht.Wild(yt.All()),beneficiary:c})]),d]}},D0=t=>{let e=Xo.findNestedKey(t,"key");return e?{parents:0,interior:Z.X1(Tt.AccountKey20({key:e.key}))}:{parents:0,interior:Z.Here()}},Ho=(t,e,n,s,o,a)=>({type:t,value:[R.WithdrawAsset([{id:n,fun:ft.Fungible(s)}]),R.BuyExecution({fees:{id:n,fun:ft.Fungible(s)},weight_limit:mn.Unlimited()}),R.Transact({origin_kind:B0.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),R.RefundSurplus(),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}})]}),Vo=(t,e,n,s,o,a)=>({type:t,value:[R.WithdrawAsset([{id:n,fun:ft.Fungible(o)}]),R.BuyExecution({fees:{id:n,fun:ft.Fungible(o)},weight_limit:mn.Unlimited()}),R.TransferAsset({assets:[{id:n,fun:ft.Fungible(s)}],beneficiary:{parents:0,interior:Z.X1(a)}}),R.RefundSurplus(),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}})]});var ee="PolkadotXcm",I0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=V(r,n),d=V(r,s.fee),u=M(m,i),l=M(d,i),f=bt(u,e),y=bt(l,s.fee.amount),A="limited_reserve_transfer_assets";return new gt({module:ee,func:A,getTx:E=>{let T=E.getUnsafeApi().tx[ee][A];return n.key===s.fee.key?T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[f]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):wo(m,d)?T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[y,f]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[f,y]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),R0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="limited_teleport_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),L0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i=r.xcmVersion??"V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="reserve_transfer_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0})})}}),H0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="transfer_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),V0=t=>({build:async({address:e,asset:n,amount:s,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let m="V4",d=c.chain,u=o.chain,l=o.fee.amount,f=o.fee;i&&(u=i.chain,l=un.toBigInt(i.fee.amount,i.fee.decimals),f=i.fee);let y=O(r),A=i||u.usesCexForwarding?Gt(d,r,u):e,E=O(A),{transferType:T}=t,_=M(V(d,n),m),D=M(V(d,f),m),G=bt(_,s),J=bt(D,l),w=n.isEqual(f),ve=Io(m,d,u,n),st=ve?.dest??je(m,d,u),$e={type:m,value:w?[G]:[J,G]},Yt=ss(m,T,_),Bn={type:m,value:w?_:D},Pn=ss(m,T,D),Xt;if(Do(_)&&o.chain.isEvmChain())Xt=cn(m,E,y,_,a);else if(ve){let Wt=un.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Ua=M(V(u,n),m);Xt=Lo(m,E,u,ve.mode,Ua,Wt)}else Xt=Ro(m,E,$e.value.length);let Qt="transfer_assets_using_type_and_then";return new gt({module:ee,func:Qt,getTx:Wt=>Wt.getUnsafeApi().tx[ee][Qt]({dest:st,assets:$e,assets_transfer_type:Yt,remote_fees_id:Bn,fees_transfer_type:Pn,custom_xcm_on_dest:Xt,weight_limit:{type:"Unlimited"}})})}}),N0=()=>{let t="send";return{transact:e=>({build:async n=>{let{sender:s,source:o,transact:a}=n,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,m=Gt(c,s,i),d=O(m),{fee:u}=a,l=M(V(i,u),r),f=un.toBigInt(e.fee,u.decimals);return new gt({module:ee,func:t,getTx:y=>y.getUnsafeApi().tx[ee][t]({dest:je(r,c,i),message:Ho(r,d,l,f,a.call,a.weight)})})}}),transferAsset:e=>({build:async n=>{let{amount:s,address:o,asset:a,sender:r,source:c,destination:i}=n,m="V4",d=c.chain,u=i.chain,l=Gt(d,r,u),f=O(l),y=O(o),A=M(V(u,a),m),{fee:E}=i,T=un.toBigInt(e.fee,E.decimals),_=s>E.amount?s-(E.amount+T):s;return new gt({module:ee,func:t,getTx:D=>D.getUnsafeApi().tx[ee][t]({dest:je(m,d,u),message:Vo(m,f,A,_,T,y)})})}})}};function M0(t){let e=n=>({build:async s=>{let o=n(s),a="execute";return new gt({module:ee,func:a,getTx:r=>r.getUnsafeApi().tx[ee][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Qs)}}var os=()=>({limitedReserveTransferAssets:I0,limitedTeleportAssets:R0,reserveTransferAssets:L0,transferAssets:H0,transferAssetsUsingTypeAndThen:V0,execute:M0,send:N0});import{ExtrinsicConfig as O0}from"@galacticcouncil/xc-core";import{encodeAssetId as W0}from"@galacticcouncil/common";import{XcmV3Junctions as No,XcmV3Junction as G0}from"@galacticcouncil/descriptors";var Mo=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:No.X1(n)}}:{type:t,value:{parents:1,interior:No.X2([G0.Parachain(e.parachainId),n])}};var Go="XTokens",U0=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:o,source:a})=>{let r=a.chain,c=s.chain,i="V3",m=c.usesCexForwarding?Gt(r,o,c):t,d=O(m),u=r.getAssetId(n),l=W0(u),f="transfer";return new O0({module:Go,func:f,getTx:y=>y.getUnsafeApi().tx[Go][f]({currency_id:l,amount:e,dest:Mo(i,c,d),dest_weight_limit:{type:"Unlimited"}})})}}),as=()=>({transfer:U0});function p(){return{assetConversion:uo,assets:lo,balances:fo,ethereumXcm:Wn,polkadotXcm:os,router:ho,utility:bo,xTokens:as}}function xt(t,e){return{prior:function(n){return{build:async s=>t(s)?p().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?p().utility().batchAll([e,...n]).build(s):p().utility().batchAll([...n]).build(s)}}}}import{Abi as Yo,Snowbridge as tc,Basejump as nc}from"@galacticcouncil/xc-core";var Oo=80000n,Wo=120000n,Uo=100000n,Ko=2000000n,rs=15000000000000n;var Jo={};Ut(Jo,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>zo,AssethubClient:()=>ke,BaseClient:()=>Re,HydrationClient:()=>te,getAllAssetDepositLimits:()=>cs,getAssetDepositLimit:()=>is,getGlobalWithdrawLimit:()=>ms});import{encodeLocation as qo}from"@galacticcouncil/common";import{hub as K0,XcmVersionedAssetId as jo}from"@galacticcouncil/descriptors";var Re=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??K0}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,jo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,jo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as dn,XcmV5Junction as q0,XcmVersionedLocation as j0,XcmVersionedXcm as z0,XcmVersionedAssetId as $0}from"@galacticcouncil/descriptors";import{encodeLocation as J0}from"@galacticcouncil/common";import{Twox128 as Y0,u128 as Q0}from"@polkadot-api/substrate-bindings";import{toHex as Z0}from"@polkadot-api/utils";var ke=class extends Re{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),o=J0(s);if(n===0)return!0;let a=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(n));return a&&a.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(s),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,n){let s=new TextEncoder().encode(e),o=Z0(Y0(s)),a=await this.client._request("state_getStorage",[o]);if(!a)return n;let r=Q0.dec(a);return r===0n?n:r}async calculateDeliveryFee(e,n){let s=j0.V5({parents:1,interior:dn.X1(q0.Parachain(n))}),o=$0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,z0.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};import{hydration as ec}from"@galacticcouncil/descriptors";var zo=14400;function $o(t,e,n,s,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,d,u,l;n&&(n.type==="Locked"?(d=n.value,m=o<n.value):(u=n.value[0],l=n.value[1]));let f=s?.type==="Local"?"Local":"External",y=!m&&u!==void 0&&u+zo<=o,A=null;if(r!==null)if(m)A=0n;else if(y)A=r;else{let E=l??a,T=a>E?a-E:0n;A=r>T?r-T:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:d,lastResetBlock:u,baselineIssuance:l,currentIssuance:a,headroom:A,category:f,periodExpired:y}}async function is(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),n]);return $o(e,s,o,a,r,c)}async function cs(t){let[e,n,s,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(n.map(u=>[u.keyArgs[0],u.value])),i=new Map(s.map(u=>[u.keyArgs[0],u.value])),m=new Map(r.map(u=>[u.keyArgs[0],u.value])),d=new Map;for(let u of e){let l=u.keyArgs[0],f=u.value;if(f?.xcm_rate_limit==null)continue;let y=l===0?a:m.get(l)??0n,A=$o(l,f,c.get(l),i.get(l),o,y);d.set(l.toString(),A)}return d}async function ms(t){let[e,n,s,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=s??void 0,r=a!==void 0&&o<a,[c,i]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:d}=e,u=c;if(!r&&d>0n){let f=o>i?o-i:0n;if(f>0n){let y=f>d?d:f,A=c*y/d;u=c>A?c-A:0n}}let l=r||u>=m?0n:m-u;return{configured:!0,limit:m,windowMs:d,used:u,lastUpdateMs:i,headroom:l,lockdown:r,lockdownUntilMs:a}}var te=class extends Re{constructor(e){super(e,ec)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),o=await this.api().query.AssetRegistry.Assets.getValue(s);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,n){let s=Number(n),o=await this.api().query.Tokens.Accounts.getValue(e,s),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return is(this.api(),n)}getAllAssetDepositLimits(){return cs(this.api())}getGlobalWithdrawLimit(){return ms(this.api())}};function sc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:n})=>{let s=n,o=new te(s),a=new ke(t.hub),r=rn(e,s),c=So(e,s),i=Mt(De),m=250000000n,d=Ys(De,s.parachainId),[u,l,f,y]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,nn),a.calculateDestinationFeeV5(d,x)]),A=q(u,33n),E=q(l,33n),T=q(f,33n),D=q(y,33n)+E,G=A,J=await a.quoteEtherForDot(i,D),w=q(J,30n),ve=w<rs*2n?rs*2n:w,st=q(await a.quoteEtherForDot(i,G),100n),$e=q(await a.quoteDotToEther(i,m+T),30n);return{amount:ve+$e+st,breakdown:{executionFee:ve,relayerFee:$e,remoteEtherFee:st,hydrationDotFee:G}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:o})=>{let a=s,r=o,c=new ke(t.hub),i=Mt(De),m=zn(e,a),[d,u,l]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,nn),c.calculateDestinationFee(m,n)]),f=await r.evmClient.getProvider().getGasPrice(),y=Ko+Wo+Oo+Uo,A=f*y,E=q(A,10n),T=d+q(u,33n)+q(l,33n),_=q(await c.quoteDotForExactEther(i,E),20n),D=new te(a),G=Gn({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:Oe}),J=q(await D.calculateDestinationFeeV5(G,x),33n);return{amount:T+_+J,breakdown:{dotRemoteFee:T,dotToEtherSwapAmount:_,etherFeeAmount:E,sourceExecutionFee:J}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:n,source:s})=>{let o=s,a=n,r=tc.fromChain(o),c=new Re(a),i=new ke(t.hub),m=rn(e,a),[d,u]=await Promise.all([c.calculateDestinationFee(m,x),i.calculateDeliveryFee(m,a.parachainId)]),l=u+q(d,25n),f=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Yo.Snowbridge,address:r.getGateway(),args:[f,a.parachainId,l],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:l}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:n,source:s})=>{let o=s,a=new ke(t.hub),r=zn(e,o),c=rn(e,o),[i,m,d,u,l]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,nn),a.calculateDestinationFee(r,n),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,n)]);return{amount:i+m+q(d,25n)+u+q(l,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:d,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:l}}}})}}function oc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let o=n,a=s,r=t?.reserve;if(Eo(e,o,a,r),r){let l=new Re(a),f=new Re(r),y=Zn(e,a),A=Fo(e,r,a),[E,T]=await Promise.all([l.calculateDestinationFee(y,e),f.calculateDestinationFee(A,e)]),_=T+E,D=q(_,20n),G=D-_;return{amount:D,breakdown:{reserveFee:T,destinationFee:E,margin:G}}}let c=new Re(a),i=To(e,a),m=await c.calculateDestinationFee(i,e),d=q(m,20n),u=d-m;return{amount:d,breakdown:{totalFee:m,margin:u}}}})}}function ac(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=nc.fromChain(n),o=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Yo.Basejump,address:s.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function S(){return{Basejump:ac,XcmPaymentApi:oc,Snowbridge:sc}}var rc="0";function ic(){return{build:async({address:t,chain:e})=>{let s=await new te(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=s?s.toString():rc,a=e.findAssetById(o);return a?a.asset:_t}}}var cc=()=>({accountCurrencyMap:ic});function jt(){return{multiTransactionPayment:cc}}import{EvmParachain as mc,MoveConfig as uc,Ntt as dc,suiPkg as ln,Wormhole as Qo}from"@galacticcouncil/xc-core";import{Transaction as lc}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as us}from"@mysten/sui/utils";import{encoding as pc}from"@wormhole-foundation/sdk-base";var fc=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=dc.fromChain(r,s),m=Qo.fromChain(r),d=Qo.fromChain(c),u=r.client,l=e;c instanceof mc&&(l=await c.getDerivatedAddress(e));let f=pc.hex.decode(d.normalizeAddress(l)),y=m.getCoreBridge(),A=i.manager,E=i.transceiver.wormhole,T=i.token,[_,D,G,J]=await Promise.all([ln.getWormholePackageId(u,y),ln.getCurrentPackageId(u,A),ln.getCurrentPackageId(u,E),ln.getCoinMetadataId(u,T)]),w=new lc,[ve]=w.splitCoins(w.gas,[w.pure.u64(n)]),[st]=w.moveCall({target:`${D}::upgrades::new_version_gated`,arguments:[]}),[$e,Yt]=w.moveCall({target:`${D}::ntt::prepare_transfer`,typeArguments:[T],arguments:[w.object(A),ve,w.object(J),w.pure.u16(d.getWormholeId()),w.pure.vector("u8",Array.from(f)),w.pure.option("vector<u8>",null),w.pure.bool(!1)]}),[Bn]=w.moveCall({target:`${D}::state::get_next_sequence`,typeArguments:[T],arguments:[w.object(A)]});w.moveCall({target:`${D}::ntt::transfer_tx_sender`,typeArguments:[T],arguments:[w.object(A),st,w.object(J),$e,w.object(us)]});let[Pn]=w.moveCall({target:`${D}::state::create_transceiver_message`,typeArguments:[`${G}::wormhole_transceiver::TransceiverAuth`,T],arguments:[w.object(A),Bn,w.object(us)]}),[Xt]=w.moveCall({target:`${G}::wormhole_transceiver::release_outbound`,typeArguments:[`${D}::auth::ManagerAuth`],arguments:[w.object(E),Pn]}),[Qt]=w.splitCoins(w.gas,[w.pure.u64(0n)]);w.moveCall({target:`${_}::publish_message::publish_message`,arguments:[w.object(y),Qt,Xt,w.object(us)]});let[Wt]=w.moveCall({target:"0x2::coin::from_balance",typeArguments:[T],arguments:[Yt]});return w.mergeCoins(w.gas,[Wt]),new uc({transaction:w,func:"transfer",module:"NttManager"})}}),Zo=()=>({transfer:fc});function ea(){return{Ntt:Zo}}function ds(){return{Wormhole:ea}}import{EvmParachain as hc,Ntt as yc,ProgramConfig as bc,SolanaBalanceType as gc,Wormhole as ta}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as xc}from"@solana/spl-token";import{Keypair as Ac,TransactionMessage as wc}from"@solana/web3.js";import{toChain as Cc}from"@wormhole-foundation/sdk-base";import{UniversalAddress as kc}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as vc}from"@wormhole-foundation/sdk-solana";import{SolanaNtt as Ec}from"@wormhole-foundation/sdk-solana-ntt";import"@wormhole-foundation/sdk-definitions-ntt";async function Tc(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(s=>t.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null)}async function Fc(t,e,n){let s=await Tc(t,e);return{instructions:"message"in e?wc.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions,signers:n,lookupTables:s}}var Sc=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=yc.fromChain(c,s),d=ta.fromChain(c),u=ta.fromChain(i),l=e;i instanceof hc&&(l=await i.getDerivatedAddress(e));let f=new Ec("Mainnet","Solana",c.connection,{coreBridge:d.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),y=c.getBalanceType(s)===gc.Native,A=Ac.generate(),E=[];for await(let D of f.transfer(new vc(o),n,{chain:Cc(u.getWormholeId()),address:new kc(u.normalizeAddress(l))},{queue:!1,automatic:!1,wrapNative:y},A)){let{transaction:G,signers:J}=D.transaction;E.push(await Fc(c.connection,G,J??[]))}let T=y?BigInt(await xc(c.connection)):0n,_=E[E.length-1];return new bc({instructions:_.instructions,signers:_.signers,lookupTables:_.lookupTables,prerequisites:E.slice(0,-1),rentReserve:T,func:"transfer",module:"NttManager"})}}),na=()=>({transfer:Sc});function sa(){return{Ntt:na}}function ls(){return{Wormhole:sa}}var aa={};Ut(aa,{Tag:()=>At});var At=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(At||{});function ia(t,e){return new ra({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ca(t,e){return new ra({source:{asset:t,fee:{asset:B},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:S().Basejump().quoteFee(),asset:t}},contract:Se().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Pc=[ca(We,Ye)],Xc=[ia(We,Ye)],ma=new Bc({chain:Dt,routes:[...Xc,...Pc]});import{AssetRoute as ua,ChainRoutes as _c}from"@galacticcouncil/xc-core";import{AssetRoute as ps}from"@galacticcouncil/xc-core";function wt(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ne(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:S().Snowbridge().calculateInboundFee({hub:F}),asset:B}},contract:Se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function se(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:S().Snowbridge().calculateInboundFeeV1({hub:F}),asset:B}},contract:Se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Dc=[wt(Je,ot),wt(Ve,at),wt(C,it),wt(g,rt),wt(Me,ct),wt(et,tt),wt(B,tt)],Ic=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:S().Snowbridge().calculateInboundFee({hub:F}),asset:B}},contract:Se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ne(re,re),ne(ie,ie),ne(ce,ce),ne(me,me),ne(pe,pe),ne(he,he),ne(ye,ye),ne(de,de),ne(ue,ue),ne(le,le),ne(fe,fe),ne(be,be),ne(ge,ge),ne(C,Ze),ne(g,Qe)],Rc=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:S().Snowbridge().calculateInboundFeeV1({hub:F}),asset:B}},contract:Se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),se(re,re),se(ie,ie),se(ce,ce),se(me,me),se(pe,pe),se(he,he),se(ye,ye),se(de,de),se(ue,ue),se(le,le),se(fe,fe),se(be,be),se(ge,ge),se(C,Ze),se(g,Qe)],da=new _c({chain:k,routes:[...Dc,...Ic,...Rc]});var la=[ma,da];import{AssetRoute as hn,ChainRoutes as fa}from"@galacticcouncil/xc-core";import{AssetRoute as fs}from"@galacticcouncil/xc-core";var St=0,Lc=t=>{let{source:e}=t;return!!e.feeSwap},Hc=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},pa=p().assetConversion().swapTokensForExactTokens({slippage:30});function Vc(t,e,n){return new fs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:g}},extrinsic:xt(Hc,pa).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function pn(t,e,n){return new fs({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:xt(Lc,pa).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function zt(t,e,n){return new fs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function fn(t){return Vc(t,h,.02)}var Nc=[new hn({source:{asset:x,fee:{asset:x,extra:St}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new hn({source:{asset:v,fee:{asset:x,extra:St}},destination:{chain:h,asset:v,fee:{amount:1e-4,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),zt(g,h,.02),zt(C,h,.02),fn(nt)],Mc=[new hn({source:{asset:v,fee:{asset:x,extra:St}},destination:{chain:Ge,asset:v,fee:{amount:.001,asset:v}},extrinsic:p().polkadotXcm().transferAssets()})],Gc=[zt(g,H,.03),zt(C,H,.03)],Oc=[new hn({source:{asset:L,fee:{asset:x,extra:St}},destination:{chain:ut,asset:L,fee:{amount:2.5,asset:L}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],ha=new fa({chain:mt,routes:[pn(g,h,.02),pn(C,h,.02),pn(x,h,.001)]}),ya=new fa({chain:F,routes:[...Nc,...Mc,...Gc,...Oc]});import{AssetRoute as Ct,ChainRoutes as Wc}from"@galacticcouncil/xc-core";var Uc=[new Ct({source:{asset:I},destination:{chain:h,asset:I,fee:{amount:.044306118,asset:I}},extrinsic:p().polkadotXcm().reserveTransferAssets()}),new Ct({source:{asset:X,fee:{asset:I}},destination:{chain:h,asset:X,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:N,fee:{asset:I}},destination:{chain:h,asset:N,fee:{amount:2e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:Ee,fee:{asset:I}},destination:{chain:h,asset:Ee,fee:{amount:.01,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:K,fee:{asset:I}},destination:{chain:h,asset:K,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:U,fee:{asset:I}},destination:{chain:h,asset:U,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:g,fee:{asset:I}},destination:{chain:h,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:C,fee:{asset:I}},destination:{chain:h,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ba=new Wc({chain:Y,routes:[...Uc]});import{AssetRoute as ze,ChainRoutes as Kc}from"@galacticcouncil/xc-core";var qc=[new ze({source:{asset:X},destination:{chain:h,asset:X,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:K,fee:{asset:X}},destination:{chain:h,asset:K,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:U,fee:{asset:X}},destination:{chain:h,asset:U,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,fee:{asset:X}},destination:{chain:h,asset:x,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ze({source:{asset:I,fee:{asset:X}},destination:{chain:h,asset:I,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:Y}),asset:I}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:N,fee:{asset:X}},destination:{chain:h,asset:N,fee:{amount:625e-8,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:g,fee:{asset:X}},destination:{chain:h,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:h,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],jc=[new ze({source:{asset:g,fee:{asset:X}},destination:{chain:F,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:F,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ga=new Kc({chain:H,routes:[...qc,...jc]});import{AssetRoute as Pt,ChainRoutes as $c}from"@galacticcouncil/xc-core";var oe=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as Bt}from"@galacticcouncil/xc-core";var zc=.02,hs=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},ys=p().router().buy({slippage:30});function Ae(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:e,asset:t,fee:{amount:S().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})}function kt(t,e){return new Bt({source:{asset:t,fee:oe()},destination:{chain:e,asset:t,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function yn(t){return new Bt({source:{asset:t,fee:oe()},destination:{chain:F,asset:t,fee:{amount:zc,asset:g}},extrinsic:xt(hs,ys).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function bs(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:Ge,asset:t,fee:{amount:e,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:n})})}function Le(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function z(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:S().Snowbridge().calculateOutboundFee({hub:F}),asset:x}},extrinsic:xt(hs,ys).prior(p().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function $(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:S().Snowbridge().calculateOutboundFeeV1({hub:F}),asset:x}},extrinsic:xt(hs,ys).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var Jc=[kt(x,F),kt(v,F),kt(g,F),kt(C,F),yn(nt)],Yc=[bs(v,.05,.005),bs(x,.2,.02)],Qc=[Ae(I,Y),Ae(X,Y,H),new Pt({source:{asset:N,fee:oe()},destination:{chain:Y,asset:N,fee:{amount:2e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Pt({source:{asset:Ee,fee:oe()},destination:{chain:Y,asset:Ee,fee:{amount:.01,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),Ae(K,Y,H),Ae(U,Y,H),Ae(g,Y,F),Ae(C,Y,F)],Zc=[Ae(X,H),Ae(K,H),Ae(U,H),Ae(I,H,Y),new Pt({source:{asset:N,fee:oe()},destination:{chain:H,asset:N,fee:{amount:5e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),Ae(g,H,F),Ae(C,H,F),new Pt({source:{asset:x,fee:oe()},destination:{chain:H,asset:x,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],em=[new Pt({source:{asset:L,fee:oe()},destination:{chain:ut,asset:L,fee:{amount:2.5,asset:L}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],tm=[Ae(Ne,Lt)],nm=[new Pt({source:{asset:we,fee:oe()},destination:{chain:Ht,asset:we,fee:{amount:.02,asset:we}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],sm=[new Pt({source:{asset:Te,fee:oe()},destination:{chain:Rt,asset:Te,fee:{amount:1.1,asset:Te}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],om=[Ae(He,It)],am=[Le(ot,Je,k),Le(at,Ve,k),Le(it,C,k),Le(rt,g,k),Le(ct,Me,k),Le(tt,B,k)],rm=[Le(Ye,We,Dt)],im=[Le(Ce,Ce,dt),Le(Xe,Xe,dt),Le(_e,_e,dt)],cm=[Le(Fe,Fe,Vt)],mm=[z(B,B,k),z(re,re,k),z(ie,ie,k),z(ce,ce,k),z(me,me,k),z(pe,pe,k),z(he,he,k),z(ye,ye,k),z(be,be,k),z(de,de,k),z(ue,ue,k),z(le,le,k),z(fe,fe,k),z(ge,ge,k),z(Ze,C,k),z(Qe,g,k)],um=[$(B,B,k),$(re,re,k),$(ie,ie,k),$(ce,ce,k),$(me,me,k),$(pe,pe,k),$(he,he,k),$(ye,ye,k),$(be,be,k),$(de,de,k),$(ue,ue,k),$(le,le,k),$(fe,fe,k),$(ge,ge,k),$(Ze,C,k),$(Qe,g,k)],dm=[kt(x,mt),kt(g,mt),kt(C,mt)],xa=new $c({chain:h,routes:[...Jc,...Qc,...Zc,...dm,...rm,...am,...mm,...im,...cm,...um,...nm,...Yc,...em,...om,...sm,...tm]});import{AssetRoute as Aa,ChainRoutes as lm}from"@galacticcouncil/xc-core";var pm=[new Aa({source:{asset:L},destination:{chain:h,asset:L,fee:{amount:.01,asset:L}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],fm=[new Aa({source:{asset:L},destination:{chain:F,asset:L,fee:{amount:.1,asset:L}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],wa=new lm({chain:ut,routes:[...pm,...fm]});import{AssetRoute as hm,ChainRoutes as ym}from"@galacticcouncil/xc-core";var bm=[new hm({source:{asset:Ne},destination:{chain:h,asset:Ne,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Ca=new ym({chain:Lt,routes:[...bm]});import{AssetRoute as gm,ChainRoutes as xm}from"@galacticcouncil/xc-core";var Am=[new gm({source:{asset:Te},destination:{chain:h,asset:Te,fee:{amount:.2,asset:Te}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],ka=new xm({chain:Rt,routes:[...Am]});import{AssetRoute as wm,ChainRoutes as Cm}from"@galacticcouncil/xc-core";var km=[new wm({source:{asset:we,fee:{asset:we,extra:.030555}},destination:{chain:h,asset:we,fee:{amount:.03,asset:we}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],va=new Cm({chain:Ht,routes:[...km]});import{AssetRoute as vm,ChainRoutes as Em}from"@galacticcouncil/xc-core";var Tm=[new vm({source:{asset:He},destination:{chain:h,asset:He,fee:{amount:.205,asset:He}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],Ea=new Em({chain:It,routes:[...Tm]});var Ta=[ya,ha,ba,ga,xa,wa,Ea,Ca,ka,va];import{AssetRoute as Fm,ChainRoutes as Sm}from"@galacticcouncil/xc-core";function gs(t){return new Fm({source:{asset:t,fee:{asset:Ce}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:ls().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Bm=[gs(Ce),gs(Xe),gs(_e)],Fa=new Sm({chain:dt,routes:[...Bm]});var Sa=[Fa];import{AssetRoute as Pm,ChainRoutes as Xm}from"@galacticcouncil/xc-core";function _m(t){return new Pm({source:{asset:t,fee:{asset:Fe}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},move:ds().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Dm=[_m(Fe)],Ba=new Xm({chain:Vt,routes:[...Dm]});var Pa=[Ba];import{AssetRoute as bn,ChainRoutes as Im}from"@galacticcouncil/xc-core";import{AssetRoute as Tx}from"@galacticcouncil/xc-core";var $t=.0015;var Rm=new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:F,asset:v,fee:{amount:.002,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lm=new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:Nt,asset:v,fee:{amount:.0012,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Hm=[new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:h,asset:v,fee:{amount:.04,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new bn({source:{asset:x,fee:{asset:v,extra:$t}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Xa=new Im({chain:Ge,routes:[Lm,Rm,...Hm]});import{AssetRoute as _a,ChainRoutes as Vm}from"@galacticcouncil/xc-core";var xs=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});var Nm=[new _a({source:{asset:g,fee:xs()},destination:{chain:Ge,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Mm=[new _a({source:{asset:v,fee:xs()},destination:{chain:Ge,asset:v,fee:{amount:.0012,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Da=new Vm({chain:Nt,routes:[...Nm,...Mm]});var Ia=[Xa,Da];var Gm=[...la,...Ta,...Sa,...Pa,...Ia],Om=new Map(Gm.map(t=>[t.chain.key,t]));import{Parachain as Na}from"@galacticcouncil/xc-core";import{Parachain as Wm,TransferValidation as Ra,TransferValidationError as La}from"@galacticcouncil/xc-core";var gn=class extends Ra{async validate(e){let{source:n}=e,{chain:s,fee:o,feeBalance:a}=n;if(a.amount<o.amount)throw new La("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:s.name,error:"fee.insufficientBalance"})}},xn=class extends Ra{async skipFor(e){let{asset:n,source:s}=e,{enabled:o}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=s,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new La("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e instanceof Wm)return(await e.getMin(n)).amount;let s=e.getAssetMin(n);return BigInt(s*10**n.decimals)}};import{TransferValidation as Ha,TransferValidationError as Va}from"@galacticcouncil/xc-core";var An=class extends Ha{async skipFor(e){let{asset:n,destination:s}=e,o=s.chain;return await new ke(o).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain;if(await new ke(a).getSystemAccountBalance(s)===0n)throw new Va("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},wn=class extends Ha{async validate(e){let{asset:n,sender:s,source:o}=e,a=o.chain;if(await new ke(a).checkIfFrozen(s,n))throw new Va("Asset_Frozen",{asset:n.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Tn,TransferValidationError as Jt}from"@galacticcouncil/xc-core";var Um=12,Km=1,qm=18,Cn=class extends Tn{async skipFor(e){let{destination:n}=e,s=n.chain,o=new te(s),a=n.balance.amount>0n,r=await o.checkIfSufficient(n.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain,r=new te(a),c=await r.getFeeAsset(s),i=a.findAssetById(c),m=i.min||Km,d=i.decimals||Um,u=m*Math.pow(10,d),l=await r.getAssetBalance(s,c);if(BigInt(u*1.1)>l)throw new Jt("Insufficient_Ed",{amount:u,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},kn=class extends Tn{async validate(e){let{amount:n,asset:s,destination:o}=e,a=o.chain,c=await new te(a).getAssetDepositLimit(s);if(c.locked)throw new Jt("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&n>c.headroom)throw new Jt("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},vn=class extends Tn{async validate(e){let{source:n}=e,s=n.chain,a=await new te(s).getGlobalWithdrawLimit();if(a.lockdown)throw new Jt("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},En=class extends Tn{async skipFor(e){let{source:n,transact:s}=e,{enabled:o}=n.destinationFeeSwap||{};return!(!!s&&s.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:s,source:o}=e,a=o.chain,r=new te(a),c=a.getBalanceAssetId(Pe),i=a.getAssetDecimals(Pe)||qm,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(s,c.toString())<BigInt(m))throw new Jt("Insufficient_Ed",{amount:1,asset:Pe.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var ae={isAny:()=>!0,isHydration:t=>t instanceof Na&&t.parachainId===2034,isHub:t=>t instanceof Na&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},jm=[new gn(ae.isAny,ae.isAny),new xn(ae.isAny,ae.isAny),new An(ae.isAny,ae.isHub),new wn(ae.isHub,ae.isAny),new Cn(ae.isAny,ae.isHydration),new En(ae.isHydration,ae.isAny),new kn(ae.isAny,ae.isHydration),new vn(ae.isHydration,ae.isAny)];var Ga={};Ut(Ga,{AssethubDex:()=>ws,HydrationDex:()=>As});import{pool as zm,sor as $m,tx as Jm}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as Ym}from"@galacticcouncil/common";import{Binary as Qm}from"polkadot-api";import{memoize1 as Zm}from"@thi.ng/memoize";var{PoolType:Fn}=zm,{TradeRouteBuilder:eu,TradeRouter:tu}=$m,{TxBuilderFactory:nu}=Jm,As=class{chain;client;poolCtx;txBuilder;getCtx=Zm(async e=>{console.log("init swap router",e,"\u2705");let n=new tu(this.poolCtx);return n.withFilter({useOnly:[Fn.Aave,Fn.Omni,Fn.Stable,Fn.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new te(this.chain),this.txBuilder=new nu(n.client,n.evm)}async getCalldata(e,n,s,o,a=0){let r=Number(this.chain.getMetadataAssetId(n)),c=Number(this.chain.getMetadataAssetId(s)),i=o.amount,m=await this.getCtx(1),d=await m.getMostLiquidRoute(r,c),u=await m.getBuy(r,c,i,d),y=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Qm.toHex(y)}async getQuote(e,n,s,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(n)),c=s.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),d=await i.getBuy(a,r,c,m);return{amount:d.amountIn,route:eu.build(d.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,s.amount)};throw m}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*n,r=Math.pow(10,Ym);return a/BigInt(r)}};import{encodeLocation as Ma}from"@galacticcouncil/common";var ws=class{chain;client;constructor(e){this.chain=e,this.client=new ke(this.chain)}async getCalldata(e,n,s,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(n),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Ma(o),Ma(a),s.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as ou}from"@galacticcouncil/xc-core";import{Asset as su}from"@galacticcouncil/xc-core";function Sn(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new su({key:[o,n,e].join("_"),originSymbol:s})}function Oa(t){let{decimals:e,id:n}=t;return{asset:Sn(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function Wa(t){let{decimals:e,id:n,internalId:s,origin:o}=t;return{asset:Sn(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var Cs=class extends ou{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),o=a=>!!n.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=Sn(a),c=Oa(a),i=Wa(a);console.log("\u{1F480} Registering "+r.key),s.updateAsset(c),n.updateAsset(i),this.updateAsset(r),this.updateChainRoute(s,fn(r)),this.updateChainRoute(n,yn(r))})}};export{Cs as HydrationConfigService,ja as assetsMap,oa as builders,$r as chainsMap,Jo as clients,Ga as dex,Om as routesMap,aa as tags,jm as validations};
|
|
1
|
+
var Ka=Object.defineProperty;var Ut=(t,e)=>{for(var n in e)Ka(t,n,{get:e[n],enumerable:!0})};import{Asset as b}from"@galacticcouncil/xc-core";var re=new b({key:"aave",originSymbol:"AAVE"}),Xn=new b({key:"ajun",originSymbol:"AJUN"}),ie=new b({key:"apyusd",originSymbol:"apyUSD"}),I=new b({key:"astr",originSymbol:"ASTR"}),X=new b({key:"bnc",originSymbol:"BNC"}),_n=new b({key:"bsx",originSymbol:"BSX"}),ce=new b({key:"cfg_new",originSymbol:"CFG"}),Dn=new b({key:"cru",originSymbol:"CRU"}),Je=new b({key:"dai",originSymbol:"DAI"}),ot=new b({...Je,key:"dai_wh"}),x=new b({key:"dot",originSymbol:"DOT"}),B=new b({key:"eth",originSymbol:"ETH"}),me=new b({key:"ena",originSymbol:"ENA"}),We=new b({key:"eurc",originSymbol:"EURC"}),Ye=new b({...We,key:"eurc_wh"}),Pe=new b({key:"glmr",originSymbol:"GLMR"}),_t=new b({key:"hdx",originSymbol:"HDX"}),N=new b({key:"ibtc",originSymbol:"IBTC"}),Ee=new b({key:"intr",originSymbol:"INTR"}),Xe=new b({key:"jitoSol",originSymbol:"jitoSOL"}),v=new b({key:"ksm",originSymbol:"KSM"}),ue=new b({key:"ldo",originSymbol:"LDO"}),de=new b({key:"lbtc",originSymbol:"LBTC"}),we=new b({key:"ewt",originSymbol:"EWT"}),le=new b({key:"link",originSymbol:"LINK"}),L=new b({key:"myth",originSymbol:"MYTH"}),He=new b({key:"neuro",originSymbol:"NEURO"}),Te=new b({key:"pen",originSymbol:"PEN"}),pe=new b({key:"paxg",originSymbol:"PAXG"}),_e=new b({key:"prime",originSymbol:"PRIME"}),fe=new b({key:"sky",originSymbol:"SKY"}),Ce=new b({key:"sol",originSymbol:"SOL"}),Fe=new b({key:"sui",originSymbol:"SUI"}),he=new b({key:"susde",originSymbol:"sUSDe"}),Ve=new b({key:"susds",originSymbol:"sUSDS"}),at=new b({...Ve,key:"susds_wh"}),ye=new b({key:"tbtc",originSymbol:"tBTC"}),be=new b({key:"trac",originSymbol:"TRAC"}),Ne=new b({key:"unq",originSymbol:"UNQ"}),g=new b({key:"usdt",originSymbol:"USDT"}),rt=new b({...g,key:"usdt_wh"}),Qe=new b({...g,key:"usdt_eth"}),C=new b({key:"usdc",originSymbol:"USDC"}),it=new b({...C,key:"usdc_wh"}),Ze=new b({...C,key:"usdc_eth"}),U=new b({key:"vastr",originSymbol:"vASTR"}),K=new b({key:"vdot",originSymbol:"vDOT"}),et=new b({key:"weth",originSymbol:"WETH"}),tt=new b({...et,key:"weth_wh"}),Me=new b({key:"wbtc",originSymbol:"WBTC"}),ct=new b({...Me,key:"wbtc_wh"}),ge=new b({key:"wsteth",originSymbol:"wstETH"}),nt=new b({key:"wud",originSymbol:"WUD"}),qa=[re,Xn,ie,I,_n,ce,Dn,X,Je,ot,x,me,We,Ye,B,Pe,_t,N,Ee,v,ue,de,we,Xe,le,L,He,pe,Te,_e,fe,Ce,Fe,he,Ve,at,be,ye,Ne,C,it,Ze,g,rt,Qe,U,K,Me,ct,et,tt,ge,nt],ja=new Map(qa.map(t=>[t.key,t]));import{ChainEcosystem as za,EvmChain as $a,EvmBalanceType as Ja}from"@galacticcouncil/xc-core";import{base as Ya}from"viem/chains";var Dt=new $a({id:8453,key:"base",name:"Base",assetsData:[{asset:B,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:We,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:C,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Ja.Erc20,ecosystem:za.Ethereum,evmChain:Ya,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[We.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});import{ChainEcosystem as Qa,EvmChain as Za,EvmBalanceType as vs}from"@galacticcouncil/xc-core";import{mainnet as er}from"viem/chains";var k=new Za({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:B,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:re,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ie,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:ce,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:et,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:Je,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:me,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:he,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ve,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:ye,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Me,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:de,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:C,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:g,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ue,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:le,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:pe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:fe,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:be,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:vs.Erc20,balanceOverrides:{[B.key]:vs.Native},ecosystem:Qa.Ethereum,evmChain:er,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[Je.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[Ve.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[C.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[g.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[Me.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[et.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[B.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var Es=[Dt,k];import{ChainEcosystem as tr,Parachain as Ts,SubstrateBalanceType as Zt,SubstrateMinType as nr}from"@galacticcouncil/xc-core";var Fs={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:nt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:L,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:v,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Zt.Assets,balanceOverrides:{[x.key]:Zt.System,[v.key]:Zt.ForeignAssets,[L.key]:Zt.ForeignAssets},min:nr.Assets,ecosystem:tr.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"]},F=new Ts({...Fs,key:"assethub",name:"AssetHub Polkadot"}),mt=new Ts({...Fs,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as sr,Parachain as or,SubstrateBalanceType as Ss}from"@galacticcouncil/xc-core";var Y=new or({assetsData:[{asset:I,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:X,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ee,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Ss.Assets,balanceOverrides:{[I.key]:Ss.System},ecosystem:sr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as ar,Parachain as rr,SubstrateBalanceType as Bs}from"@galacticcouncil/xc-core";var ir=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],H=new rr({assetsData:[{asset:X,id:{Native:X.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:I,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:Pe,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Bs.Tokens,balanceOverrides:{[X.key]:Bs.System},ecosystem:ar.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:ir});import{ChainEcosystem as dr,EvmParachain as lr,SubstrateBalanceType as Xs}from"@galacticcouncil/xc-core";import{defineChain as pr}from"viem";import{h160 as cr}from"@galacticcouncil/common";import{AccountId as mr}from"polkadot-api";var{isEvmAccount:ur,H160:Ps}=cr,en=class{async toH160(e,n){if(ur(e))return Ps.fromAccount(e);let s=Ps.fromSS58(e);if(n&&await this.isBound(n,s,e))return s;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,n,s){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(n);if(!a)return!1;let r=mr().enc(s),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var fr=new en,In=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Rn=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],hr=pr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:In,webSocket:Rn},default:{http:In,webSocket:Rn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new lr({assetsData:[{asset:_t,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:re,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Xn,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:I,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:X,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ce,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Dn,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ot,decimals:18,id:18,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f"}}]}}},{asset:B,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:ie,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:me,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:Pe,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ee,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Xe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0xfcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd"}}]}}},{asset:_e,decimals:6,id:43,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x26759f460ee5f743ed66d27c8f2a5623bf39d53ed575955320661e6e13e0e3da"}}]}}},{asset:we,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:ue,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:v,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:de,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:le,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:pe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:L,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:He,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Te,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:fe,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Ce,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001"}}]}}},{asset:Fe,decimals:9,id:1000753,min:.003,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:21},{GeneralKey:{length:32,data:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}]}}},{asset:he,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ve,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:at,decimals:18,id:1000745,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:ye,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:be,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ne,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:C,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:it,decimals:6,id:21,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:Ye,decimals:6,id:44,min:.014,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:30},{GeneralKey:{length:32,data:"0x00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42"}}]}}},{asset:Ze,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:g,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:rt,decimals:6,id:23,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Qe,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:U,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Me,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ct,decimals:8,id:19,min:34e-8,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:et,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:tt,decimals:18,id:20,min:54e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{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}]}}}],balance:Xs.Tokens,balanceOverrides:{[_t.key]:Xs.System},ecosystem:dr.Polkadot,evmChain:hr,evmResolver:fr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[ot.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Ye.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Xe.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[_e.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Ce.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Fe.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[at.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[it.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[rt.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[ct.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[tt.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Rn,rpcs:In});import{ChainEcosystem as yr,Parachain as br,SubstrateBalanceType as gr}from"@galacticcouncil/xc-core";var ut=new br({assetsData:[{asset:L,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:gr.System,ecosystem:yr.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});import{ChainEcosystem as xr,Parachain as Ar,SubstrateBalanceType as wr}from"@galacticcouncil/xc-core";var It=new Ar({assetsData:[{asset:He,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:wr.System,ecosystem:xr.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 Cr,Parachain as kr,XcmVersion as vr,SubstrateBalanceType as Er}from"@galacticcouncil/xc-core";var Rt=new kr({assetsData:[{asset:Te,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Er.System,ecosystem:Cr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:vr.v3});import{ChainEcosystem as Tr,Parachain as Fr,SubstrateBalanceType as Sr}from"@galacticcouncil/xc-core";var Br={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:Sr.System,ecosystem:Tr.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"},_s=new Fr({...Br,key:"polkadot"});import{ChainEcosystem as Pr,Parachain as Xr,SubstrateBalanceType as _r}from"@galacticcouncil/xc-core";var Lt=new Xr({assetsData:[{asset:Ne,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:_r.System,ecosystem:Pr.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 Dr,Parachain as Ir,XcmVersion as Rr,SubstrateBalanceType as Lr}from"@galacticcouncil/xc-core";var Ht=new Ir({assetsData:[{asset:we,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Lr.System,ecosystem:Dr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Rr.v3});var Ds=[F,mt,Y,H,h,It,ut,Rt,_s,Lt,Ht];import{ChainEcosystem as Hr,SolanaChain as Vr,SolanaBalanceType as Is}from"@galacticcouncil/xc-core";var dt=new Vr({id:101,key:"solana",name:"Solana",assetsData:[{asset:Ce,decimals:9},{asset:Xe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:_e,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Is.Token,balanceOverrides:{[Ce.key]:Is.Native},ecosystem:Hr.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",ntt:{[Ce.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Xe.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[_e.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Rs=[dt];import{ChainEcosystem as Nr,SuiChain as Mr,SuiBalanceType as Gr}from"@galacticcouncil/xc-core";var Vt=new Mr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Fe,decimals:9}],balance:Gr.Native,ecosystem:Nr.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[Fe.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var Ls=[Vt];import{ChainEcosystem as Or,Parachain as Wr,SubstrateBalanceType as Ln,SubstrateMinType as Ur}from"@galacticcouncil/xc-core";var Ge=new Wr({assetsData:[{asset:v,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:g,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Ln.Assets,balanceOverrides:{[v.key]:Ln.System,[x.key]:Ln.ForeignAssets},min:Ur.Assets,ecosystem:Or.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 Kr,Parachain as qr,SubstrateBalanceType as jr}from"@galacticcouncil/xc-core";var Nt=new qr({assetsData:[{asset:_n,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:v,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:jr.Tokens,ecosystem:Kr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Hs=[Ge,Nt];var zr=[...Es,...Ds,...Rs,...Ls,...Hs],$r=new Map(zr.map(t=>[t.key,t]));import{ChainRoutes as Bc}from"@galacticcouncil/xc-core";import{AssetRoute as ra}from"@galacticcouncil/xc-core";var oa={};Ut(oa,{ContractBuilder:()=>Se,ExtrinsicBuilder:()=>p,ExtrinsicDecorator:()=>xt,FeeAmountBuilder:()=>S,FeeAssetBuilder:()=>jt,MoveBuilder:()=>ls,ProgramBuilder:()=>ps,XcmTransferType:()=>Be,XcmVersion:()=>qe});import{Abi as Vs,ContractConfig as Jr,Precompile as Yr}from"@galacticcouncil/xc-core";import{encodeFunctionData as Qr}from"viem";var Zr=t=>({build:async e=>{let n=await Promise.all(t.map(r=>r.build(e))),s=n.map(r=>r.address),o=[0,0],a=n.map(r=>Qr({abi:Vs[r.module],functionName:r.func,args:r.args}));return new Jr({abi:Vs.Batch,address:Yr.Batch,args:[s,o,a,[]],func:"batchAll",module:"Batch"})}}),Ns=()=>({batchAll:Zr});import{Abi as ei,ContractConfig as ti,Wormhole as ni}from"@galacticcouncil/xc-core";function q(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function vt(t){return typeof t=="object"?Object.values(t)[0]:t}function Ms(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:o,transact:a}=e,r=a?a.chain:o.chain,c=ni.fromChain(r),i=r.getAssetId(s);return new ti({abi:ei.Erc20,address:vt(i).toString(),args:[t(c),n],func:"approve",module:"Erc20"})}})}}import{Abi as si,Basejump as oi,ContractConfig as ai}from"@galacticcouncil/xc-core";import{h160 as ri}from"@galacticcouncil/common";import{AccountId as ii}from"polkadot-api";import{toHex as ci}from"@polkadot-api/utils";var{H160:mi,isEvmAddress:ui}=ri;function di(t){let e=ui(t)?mi.toAccount(t):t;return ci(ii().enc(e))}var li=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o}=t,a=o.chain,r=oi.fromChain(a),c=a.getAssetId(s);return new ai({abi:si.Basejump,address:r.getAddress(),args:[vt(c),n,di(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Gs=()=>({bridgeViaWormhole:li});import{addr as pi,Abi as Os,ContractConfig as Ws,Precompile as Us}from"@galacticcouncil/xc-core";import{big as fi}from"@galacticcouncil/common";var{Ss58Addr:Ks}=pi;function hi(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Hn(t,e){let n=t.getAssetId(e);return typeof n=="string"?hi(n):n}function qs(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Hn(o.chain,n);return new Ws({abi:Os.PolkadotXcm,address:Us.PolkadotXcm,args:[s.chain.parachainId,Ks.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Hn(o.chain,n),r=Hn(o.chain,o.destinationFeeBalance),c=fi.toBigInt(s.fee.amount,s.fee.decimals);return new Ws({abi:Os.PolkadotXcm,address:Us.PolkadotXcm,args:[s.chain.parachainId,Ks.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Ci,Abi as Zs,ContractConfig as eo,Snowbridge as to}from"@galacticcouncil/xc-core";import{XcmV5Junctions as ki,XcmV5Junction as vi,XcmVersionedXcm as Ei,XcmVersionedLocation as Ti}from"@galacticcouncil/descriptors";import{Blake2256 as Fi}from"@polkadot-api/substrate-bindings";import{toHex as Wn}from"@polkadot-api/utils";import{encodeAbiParameters as Si}from"viem";import{codec as yi}from"@galacticcouncil/xc-core";var tn=null;async function js(){if(tn)return tn;let t=await yi.getHubCodecs();return tn={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},tn}import{multiloc as gi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as xe,XcmV5AssetFilter as Q,XcmV5Instruction as P,XcmV5Junctions as pt,XcmV5Junction as Ke,XcmV5NetworkId as Vn,XcmV5WildAsset as Ue,XcmVersionedXcm as xi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Ai}from"@polkadot-api/substrate-bindings";import{toHex as wi}from"@polkadot-api/utils";import{XcmV3Junctions as bi}from"@galacticcouncil/descriptors";var j=340282366920938463463374607431768211455n,Oe="0x0000000000000000000000000000000000000000000000000000000000000000",W={parents:1,interior:bi.Here()},zs=0,lt=1e3,nn=1002,De=1,Et="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",$s="0x0000000000000000000000000000000000000000000000000000000000000000",Js="0x0000000000000000000000000000000000000000";var Nn="0x0000000000000000000000000000000000000000",Mt=t=>({parents:2,interior:pt.X1(Ke.GlobalConsensus(Vn.Ethereum({chain_id:BigInt(t)})))}),Mn=(t,e)=>({parents:2,interior:pt.X2([Ke.GlobalConsensus(Vn.Ethereum({chain_id:BigInt(t)})),Ke.AccountKey20({key:e,network:void 0})])});function Ys(t,e){let n=Mt(t),s=Mn(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[P.ReserveAssetDeposited([{id:n,fun:xe.Fungible(o)},{id:s,fun:xe.Fungible(o)}]),P.ExchangeAsset({give:Q.Wild(Ue.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:W,fun:xe.Fungible(a)}],maximal:!1}),P.PayFees({asset:{id:W,fun:xe.Fungible(a)}})],c=Gn({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function Gn(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Mt(e),m=s===Nn?i:Mn(e,s),u=o.length===42&&o.startsWith("0x")?Ke.AccountKey20({key:o,network:void 0}):Ke.AccountId32({id:o,network:void 0}),l={parents:0,interior:pt.X1(u)};return[P.SetAppendix([P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})]),P.ExchangeAsset({give:Q.Wild(Ue.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:W,fun:xe.Fungible(r)}],maximal:!1}),P.InitiateTransfer({destination:{parents:1,interior:pt.X1(Ke.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:Q.Definite([{id:W,fun:xe.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:Q.Definite([{id:m,fun:xe.Fungible(a)}])}],remote_xcm:[P.DepositAsset({assets:Q.Wild(Ue.AllCounted(3)),beneficiary:l}),P.SetTopic(c)]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l}),P.SetTopic(c)]}function On(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,d=Mt(De),u=e===Nn?d:Mn(De,e),l={parents:0,interior:pt.X1(Ke.AccountId32({id:n,network:void 0}))},f={parents:0,interior:pt.X1(Ke.AccountKey20({key:s,network:void 0}))},y={parents:2,interior:pt.X1(Ke.GlobalConsensus(Vn.Ethereum({chain_id:BigInt(De)})))},A=[P.DepositAsset({assets:Q.Wild(Ue.AllCounted(3)),beneficiary:f}),P.SetTopic(m)],E=[P.SetAppendix([P.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})])];E.push(P.ExchangeAsset({give:Q.Definite([{id:W,fun:xe.Fungible(c)}]),want:[{id:d,fun:xe.Fungible(i)}],maximal:!1}));let T=[{type:"ReserveWithdraw",value:Q.Wild(Ue.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],_=Q.Definite([{id:d,fun:xe.Fungible(i)}]);E.push(P.InitiateTransfer({destination:y,remote_fees:{type:"ReserveWithdraw",value:_},preserve_origin:!0,assets:T,remote_xcm:A}),P.SetTopic(m));let D=a+r+c,G=[{id:W,fun:xe.Fungible(D)},{id:u,fun:xe.Fungible(o)}],J=[{id:W,fun:xe.Fungible(a)}],w={type:"ReserveWithdraw",value:Q.Wild(Ue.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},ve=[{type:"ReserveWithdraw",value:Q.Definite([{id:W,fun:xe.Fungible(c)}])},w];return[P.WithdrawAsset(G),P.PayFees({asset:J[0]}),P.SetAppendix([P.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})]),P.InitiateTransfer({destination:{parents:1,interior:pt.X1(Ke.Parachain(lt))},remote_fees:{type:"ReserveWithdraw",value:Q.Definite([{id:W,fun:xe.Fungible(r)}])},preserve_origin:!0,assets:ve,remote_xcm:E}),P.SetTopic(m)]}function Qs(t){let{address:e,amount:n,asset:s,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=Ai(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let d=wi(m.publicKey),u=i.getAssetXcmLocation(s),l=u?gi.findNestedKey(u,"key"):void 0,f=l?l.key:Nn,y=r.feeBreakdown,A=y.sourceExecutionFee??0n,E=y.dotRemoteFee??0n,T=y.dotToEtherSwapAmount??0n,_=y.etherFeeAmount??0n,G=On({tokenAddress:f,senderPubKey:d,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:A,dotRemoteFee:E,dotToEtherSwapAmount:T,etherFeeAmount:_,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return xi.V5(G)}var{Ss58Addr:no}=Ci,Bi="0x0000000000000000000000000000000000000000",Pi=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=to.fromChain(c),d=c.getAssetId(s),u=vt(d),l=s.originSymbol==="ETH",f=r.feeBreakdown.executionFee,y=r.feeBreakdown.relayerFee,A=r.feeBreakdown.hydrationDotFee,E=r.fee.amount,T=no.getPubKey(e),_=new TextEncoder().encode(`${i.parachainId}${o}${u}${T}${n}${Date.now()}`),D=Wn(Fi(_)),G=Gn({ethChainId:De,destinationParaId:i.parachainId,tokenAddress:l?Bi:u,beneficiaryHex:T,tokenAmount:n,hydrationDotFee:A,topic:D}),J=await js(),w=Wn(J.message.enc(Ei.V5(G))),ve=[];l||ve.push(Si([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,n]));let st=J.location.enc(Ti.V5({parents:0,interior:ki.X1(vi.AccountId32({id:T,network:void 0}))})),$e=Wn(st.slice(1));return new eo({abi:Zs.Snowbridge,address:m.getGateway(),args:[w,ve,$e,f,y],value:l?E+n:E,func:"v2_sendMessage",module:"Snowbridge"})}}),Xi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=to.fromChain(r),m=r.getAssetId(s),d=vt(m),u=s.originSymbol==="ETH",l=a.feeBreakdown.bridgeFeeInDot,f=a.fee.amount;return new eo({abi:Zs.Snowbridge,address:i.getGateway(),args:[d,c.parachainId,[1,no.getPubKey(e)],l,n],value:u?f+n:f,func:"sendToken",module:"Snowbridge"})}}),so=()=>({v2SendMessage:Pi,sendToken:Xi});import{Abi as oo,ContractConfig as _i,EvmBalanceType as Di,EvmParachain as Ii,Ntt as Ri,Wormhole as Li}from"@galacticcouncil/xc-core";var Hi="0x00",ao=8,Vi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Ri.fromChain(r,s),m=Li.fromChain(c),d=e;c instanceof Ii&&(d=await c.getDerivatedAddress(e));let u=r,l=await u.evmClient.getProvider().readContract({abi:oo.NttManager,address:i.manager,args:[m.getWormholeId(),Hi],functionName:"quoteDeliveryPrice"}),f=u.getAssetDecimals(s)??0,y=n;if(f>ao){let A=10n**BigInt(f-ao);y=n-n%A}return new _i({abi:oo.NttManager,address:i.manager,args:[y,m.getWormholeId(),m.normalizeAddress(d)],token:i.token,wrapNative:u.getBalanceType(s)===Di.Native,value:l[1],func:"transfer",module:"NttManager"})}}),ro=()=>({transfer:Vi});function io(){return{Ntt:ro}}function Se(){return{Batch:Ns,Erc20:Ms,Basejump:Gs,PolkadotXcm:qs,Snowbridge:so,Wormhole:io}}import{encodeLocation as co}from"@galacticcouncil/common";import{ExtrinsicConfig as Ni}from"@galacticcouncil/xc-core";var mo="AssetConversion",Mi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:o}=s,a=s.destinationFeeSwap||s.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,m=co(i.getAssetXcmLocation(r)),d=co(i.getAssetXcmLocation(c)),u=r.amount+r.amount*BigInt(t.slippage)/100n,l=c.amount;return new Ni({module:mo,func:e,getTx:f=>f.getUnsafeApi().tx[mo][e]({path:[m,d],amount_out:l,amount_in_max:u,send_to:n,keep_alive:!0})})}}},uo=()=>({swapTokensForExactTokens:Mi});import{hub as Gi,MultiAddress as Oi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Wi}from"@galacticcouncil/xc-core";var Ui="Assets",Ki=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:o})=>{let a=o.chain,{fee:r}=o,c=n>r.amount?n-r.amount:n,i=a.getMetadataAssetId(e);return new Wi({module:Ui,func:t,getTx:m=>m.getTypedApi(Gi).tx.Assets.transfer({id:Number(i),target:Oi.Id(s),amount:c})})}}},lo=()=>({transfer:Ki});import{ExtrinsicConfig as qi}from"@galacticcouncil/xc-core";var po="Balances",ji=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new qi({module:po,func:e,getTx:s=>s.getUnsafeApi().tx[po][e]({dest:n,keep_alive:t})})}},fo=()=>({transferAll:ji});import{hydration as zi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as $i}from"@galacticcouncil/xc-core";var Ji="Router",Yi=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:o}=n;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=s,m=i.getMetadataAssetId(a),d=i.getMetadataAssetId(r),u=r.amount,l=a.amount+a.amount*BigInt(t.slippage)/100n;return new $i({module:Ji,func:"buy",getTx:f=>f.getTypedApi(zi).tx.Router.buy({asset_in:Number(m),asset_out:Number(d),amount_out:u,max_amount_in:l,route:c})})}}),ho=()=>({buy:Yi});import{ExtrinsicConfig as Qi}from"@galacticcouncil/xc-core";var yo="Utility",Zi=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(o=>o.build(n)));return new Qi({module:yo,func:e,getTx:o=>{let a=s.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[yo][e]({calls:a})}})}}},bo=()=>({batchAll:Zi});import{Abi as e0,ExtrinsicConfig as t0}from"@galacticcouncil/xc-core";import{Binary as n0}from"polkadot-api";import{encodeFunctionData as s0}from"viem";var qe=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(qe||{}),Be=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Be||{});var go="EthereumXcm",o0=t=>{let e="transact";return{build:async n=>{let s=await t.build(n),o="V1",a=s0({abi:e0[s.module],functionName:s.func,args:s.args});return new t0({module:go,func:e,getTx:r=>r.getUnsafeApi().tx[go][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:s.address},value:[0n,0n,0n,0n],input:n0.fromHex(a),access_list:void 0}}})})}}},Un=()=>({transact:o0});import{ExtrinsicConfig as gt}from"@galacticcouncil/xc-core";import{big as un}from"@galacticcouncil/common";import{multiloc as Xo,ChainEcosystem as ns}from"@galacticcouncil/xc-core";import{XcmV3Junctions as Z,XcmV3Junction as Tt,XcmV3JunctionNetworkId as Bo,XcmV3MultiassetFungibility as ft,XcmV4Instruction as R,XcmV4AssetAssetFilter as ht,XcmV4AssetWildAsset as yt,XcmV3WeightLimit as mn,XcmV2MultiassetWildFungibility as S0,XcmV2OriginKind as B0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as g0,XcmV3MultiassetFungibility as qn,XcmV3WeightLimit as x0,XcmV4AssetAssetFilter as A0,XcmV4AssetWildAsset as w0,XcmV4Instruction as Kt}from"@galacticcouncil/descriptors";import{acc as a0}from"@galacticcouncil/common";import{XcmV3Junction as xo}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as r0}from"@polkadot-api/substrate-bindings";import{toHex as i0}from"@polkadot-api/utils";function O(t){if(t.length===42&&t.startsWith("0x"))return xo.AccountKey20({key:t,network:void 0});let n=r0(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return xo.AccountId32({id:i0(n.publicKey),network:void 0})}function Gt(t,e,n){return a0.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}import{multiloc as Ao}from"@galacticcouncil/xc-core";function wo(t,e){let n=Ao.findNestedKey(t,"GeneralIndex"),s=Ao.findNestedKey(e,"GeneralIndex"),o=n&&n.GeneralIndex,a=s&&s.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function V(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var an={};Ut(an,{ETHER_TOKEN_ADDRESS:()=>Kn,erc20Location:()=>u0,erc20LocationReanchored:()=>d0,ethereumLocation:()=>ko,parachainLocation:()=>m0});import{XcmV3Junctions as sn,XcmV3Junction as on,XcmV3JunctionNetworkId as c0}from"@galacticcouncil/descriptors";var Kn="0x0000000000000000000000000000000000000000",Co=t=>on.GlobalConsensus(c0.Ethereum({chain_id:BigInt(t)}));function ko(t){return{parents:2,interior:sn.X1(Co(t))}}function m0(t){return{parents:1,interior:sn.X1(on.Parachain(t))}}function u0(t,e){return e===Kn?ko(t):{parents:2,interior:sn.X2([Co(t),on.AccountKey20({key:e})])}}function d0(t){return t===Kn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:sn.X1(on.AccountKey20({key:t}))}}import{encodeLocation as vo}from"@galacticcouncil/common";import{multiloc as l0}from"@galacticcouncil/xc-core";function M(t,e){return p0(e)>=4?vo(t):f0(t)}function p0(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function f0(t){return{type:"Concrete",value:vo(t)}}var h0=1e3;function y0(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function b0(t){if(t)return y0(t)?h0:l0.findParachain(t)}function Eo(t,e,n,s){let o=e.getAssetXcmLocation(t),a=b0(o),r=s?.parachainId??n.parachainId;if(a&&r!==a)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${s.name} (${s.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function rn(t,e){let n="V4",s=M(V(e,t),n),o=Oe;return[Kt.ReserveAssetDeposited([{id:W,fun:qn.Fungible(j)},{id:s,fun:qn.Fungible(j)}]),Kt.ClearOrigin(),Kt.BuyExecution({fees:{id:W,fun:qn.Fungible(j)},weight_limit:x0.Unlimited()}),Kt.DepositAsset({assets:A0.Wild(w0.AllCounted(2)),beneficiary:{parents:0,interior:g0.X1(O(Et))}}),Kt.SetTopic(o)]}import{XcmV4Instruction as jn,XcmV3MultiassetFungibility as zn,XcmV3WeightLimit as C0}from"@galacticcouncil/descriptors";function $n(t,e){let n="V4",s=M(V(e,t),n),o=cn("V4",O(Js),O(Et),s,Oe);return[jn.WithdrawAsset([{id:W,fun:zn.Fungible(j)},{id:s,fun:zn.Fungible(j)}]),jn.ClearOrigin(),jn.BuyExecution({fees:{id:W,fun:zn.Fungible(j)},weight_limit:C0.Unlimited()}),...o.value]}import{XcmV3Junctions as Jn,XcmV3Junction as k0,XcmV3MultiassetFungibility as qt,XcmV3WeightLimit as Yn,XcmV4AssetAssetFilter as Qn,XcmV4AssetWildAsset as Zn,XcmV4Instruction as Ie}from"@galacticcouncil/descriptors";function To(t,e){let n="V4",s=M(V(e,t),n),o=Oe;return[Ie.WithdrawAsset([{id:s,fun:qt.Fungible(j)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:s,fun:qt.Fungible(j)},weight_limit:Yn.Unlimited()}),Ie.DepositAsset({assets:Qn.Wild(Zn.AllCounted(1)),beneficiary:{parents:0,interior:Jn.X1(O(Et))}}),Ie.SetTopic(o)]}function es(t,e){let n="V4",s=M(V(e,t),n);return[Ie.BuyExecution({fees:{id:s,fun:qt.Fungible(j)},weight_limit:Yn.Unlimited()}),Ie.DepositAsset({assets:Qn.Wild(Zn.AllCounted(1)),beneficiary:{parents:0,interior:Jn.X1(O(Et))}})]}function Fo(t,e,n){let s="V4",o=M(V(e,t),s),a=Oe,r=es(t,n);return[Ie.WithdrawAsset([{id:o,fun:qt.Fungible(j)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:o,fun:qt.Fungible(j)},weight_limit:Yn.Unlimited()}),Ie.DepositReserveAsset({assets:Qn.Wild(Zn.AllCounted(1)),dest:{parents:1,interior:Jn.X1(k0.Parachain(n.parachainId))},xcm:r}),Ie.SetTopic(a)]}import{XcmV3MultiassetFungibility as ts,XcmV5AssetFilter as v0,XcmV5Instruction as Ot,XcmV5Junctions as E0,XcmV5Junction as T0,XcmV5WildAsset as F0}from"@galacticcouncil/descriptors";function So(t,e){let n="V5",s=M(V(e,t),n),o={parents:0,interior:E0.X1(T0.AccountId32({id:$s,network:void 0}))};return[Ot.ReserveAssetDeposited([{id:W,fun:ts.Fungible(j)}]),Ot.PayFees({asset:{id:W,fun:ts.Fungible(j)}}),Ot.ReserveAssetDeposited([{id:s,fun:ts.Fungible(j)}]),Ot.ClearOrigin(),Ot.DepositAsset({assets:v0.Wild(F0.AllCounted(3)),beneficiary:o}),Ot.SetTopic(Oe)]}var Po=[ns.Polkadot,ns.Kusama],P0={parents:1,interior:Z.X1(Tt.Parachain(1e3))},X0=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},_o=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Po.includes(t.ecosystem)&&Po.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Do=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},je=(t,e,n)=>{if(_o(e,n))return{type:t,value:ss(n.ecosystem,n.parachainId)};if(n.parachainId===zs)return{type:t,value:{parents:1,interior:Z.Here()}};let s=n.key==="ethereum"?lt:n.parachainId;return{type:t,value:{parents:1,interior:Z.X1(Tt.Parachain(s))}}},_0=t=>t===ns.Kusama?Bo.Kusama():Bo.Polkadot(),ss=(t,e)=>({parents:2,interior:Z.X2([Tt.GlobalConsensus(_0(t)),Tt.Parachain(e)])}),Io=(t,e,n,s)=>{if(_o(e,n)){if(e.parachainId!==lt){let o=Xo.findGlobalConsensus(V(e,s)),a=typeof o=="string"&&o===n.ecosystem;return{dest:{type:t,value:{parents:1,interior:Z.X1(Tt.Parachain(lt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(n.parachainId!==lt)return{dest:{type:t,value:ss(n.ecosystem,lt)},mode:"onward"}}},Ft=(t,e)=>({type:t,value:{parents:0,interior:Z.X1(e)}}),os=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:X0(n)?P0:n}}:{type:e},bt=(t,e)=>({id:t,fun:ft.Fungible(e)}),Ro=(t,e,n)=>({type:t,value:[R.DepositAsset({assets:ht.Wild(yt.AllCounted(n)),beneficiary:{parents:0,interior:Z.X1(e)}})]}),cn=(t,e,n,s,o)=>{let a=o;return{type:t,value:[R.SetAppendix([R.DepositAsset({assets:ht.Wild(yt.All()),beneficiary:{parents:0,interior:Z.X1(n)}})]),R.InitiateReserveWithdraw({assets:ht.Wild(yt.AllOf({id:s,fun:S0.Fungible()})),reserve:an.ethereumLocation(De),xcm:[R.BuyExecution({fees:{id:D0(s),fun:ft.Fungible(1n)},weight_limit:mn.Unlimited()}),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}}),R.SetTopic(a)]}),R.SetTopic(a)]}},Lo=(t,e,n,s,o,a)=>{let r=s==="onward"?{parents:1,interior:Z.X1(Tt.Parachain(n.parachainId))}:ss(n.ecosystem,n.parachainId),c={parents:0,interior:Z.X1(e)},i=ht.Wild(yt.AllCounted(1)),m=[R.BuyExecution({fees:{id:o,fun:ft.Fungible(a)},weight_limit:mn.Unlimited()}),R.DepositAsset({assets:i,beneficiary:c})],d=s==="bridge-withdraw"?R.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):R.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[R.SetAppendix([R.DepositAsset({assets:ht.Wild(yt.All()),beneficiary:c})]),d]}},D0=t=>{let e=Xo.findNestedKey(t,"key");return e?{parents:0,interior:Z.X1(Tt.AccountKey20({key:e.key}))}:{parents:0,interior:Z.Here()}},Ho=(t,e,n,s,o,a)=>({type:t,value:[R.WithdrawAsset([{id:n,fun:ft.Fungible(s)}]),R.BuyExecution({fees:{id:n,fun:ft.Fungible(s)},weight_limit:mn.Unlimited()}),R.Transact({origin_kind:B0.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),R.RefundSurplus(),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}})]}),Vo=(t,e,n,s,o,a)=>({type:t,value:[R.WithdrawAsset([{id:n,fun:ft.Fungible(o)}]),R.BuyExecution({fees:{id:n,fun:ft.Fungible(o)},weight_limit:mn.Unlimited()}),R.TransferAsset({assets:[{id:n,fun:ft.Fungible(s)}],beneficiary:{parents:0,interior:Z.X1(a)}}),R.RefundSurplus(),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}})]});var ee="PolkadotXcm",I0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=V(r,n),d=V(r,s.fee),u=M(m,i),l=M(d,i),f=bt(u,e),y=bt(l,s.fee.amount),A="limited_reserve_transfer_assets";return new gt({module:ee,func:A,getTx:E=>{let T=E.getUnsafeApi().tx[ee][A];return n.key===s.fee.key?T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[f]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):wo(m,d)?T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[y,f]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[f,y]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),R0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="limited_teleport_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),L0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i=r.xcmVersion??"V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="reserve_transfer_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0})})}}),H0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="transfer_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),V0=t=>({build:async({address:e,asset:n,amount:s,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let m="V4",d=c.chain,u=o.chain,l=o.fee.amount,f=o.fee;i&&(u=i.chain,l=un.toBigInt(i.fee.amount,i.fee.decimals),f=i.fee);let y=O(r),A=i||u.usesCexForwarding?Gt(d,r,u):e,E=O(A),{transferType:T}=t,_=M(V(d,n),m),D=M(V(d,f),m),G=bt(_,s),J=bt(D,l),w=n.isEqual(f),ve=Io(m,d,u,n),st=ve?.dest??je(m,d,u),$e={type:m,value:w?[G]:[J,G]},Yt=os(m,T,_),Bn={type:m,value:w?_:D},Pn=os(m,T,D),Xt;if(Do(_)&&o.chain.isEvmChain())Xt=cn(m,E,y,_,a);else if(ve){let Wt=un.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Ua=M(V(u,n),m);Xt=Lo(m,E,u,ve.mode,Ua,Wt)}else Xt=Ro(m,E,$e.value.length);let Qt="transfer_assets_using_type_and_then";return new gt({module:ee,func:Qt,getTx:Wt=>Wt.getUnsafeApi().tx[ee][Qt]({dest:st,assets:$e,assets_transfer_type:Yt,remote_fees_id:Bn,fees_transfer_type:Pn,custom_xcm_on_dest:Xt,weight_limit:{type:"Unlimited"}})})}}),N0=()=>{let t="send";return{transact:e=>({build:async n=>{let{sender:s,source:o,transact:a}=n,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,m=Gt(c,s,i),d=O(m),{fee:u}=a,l=M(V(i,u),r),f=un.toBigInt(e.fee,u.decimals);return new gt({module:ee,func:t,getTx:y=>y.getUnsafeApi().tx[ee][t]({dest:je(r,c,i),message:Ho(r,d,l,f,a.call,a.weight)})})}}),transferAsset:e=>({build:async n=>{let{amount:s,address:o,asset:a,sender:r,source:c,destination:i}=n,m="V4",d=c.chain,u=i.chain,l=Gt(d,r,u),f=O(l),y=O(o),A=M(V(u,a),m),{fee:E}=i,T=un.toBigInt(e.fee,E.decimals),_=s>E.amount?s-(E.amount+T):s;return new gt({module:ee,func:t,getTx:D=>D.getUnsafeApi().tx[ee][t]({dest:je(m,d,u),message:Vo(m,f,A,_,T,y)})})}})}};function M0(t){let e=n=>({build:async s=>{let o=n(s),a="execute";return new gt({module:ee,func:a,getTx:r=>r.getUnsafeApi().tx[ee][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Qs)}}var as=()=>({limitedReserveTransferAssets:I0,limitedTeleportAssets:R0,reserveTransferAssets:L0,transferAssets:H0,transferAssetsUsingTypeAndThen:V0,execute:M0,send:N0});import{ExtrinsicConfig as O0}from"@galacticcouncil/xc-core";import{encodeAssetId as W0}from"@galacticcouncil/common";import{XcmV3Junctions as No,XcmV3Junction as G0}from"@galacticcouncil/descriptors";var Mo=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:No.X1(n)}}:{type:t,value:{parents:1,interior:No.X2([G0.Parachain(e.parachainId),n])}};var Go="XTokens",U0=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:o,source:a})=>{let r=a.chain,c=s.chain,i="V3",m=c.usesCexForwarding?Gt(r,o,c):t,d=O(m),u=r.getAssetId(n),l=W0(u),f="transfer";return new O0({module:Go,func:f,getTx:y=>y.getUnsafeApi().tx[Go][f]({currency_id:l,amount:e,dest:Mo(i,c,d),dest_weight_limit:{type:"Unlimited"}})})}}),rs=()=>({transfer:U0});function p(){return{assetConversion:uo,assets:lo,balances:fo,ethereumXcm:Un,polkadotXcm:as,router:ho,utility:bo,xTokens:rs}}function xt(t,e){return{prior:function(n){return{build:async s=>t(s)?p().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?p().utility().batchAll([e,...n]).build(s):p().utility().batchAll([...n]).build(s)}}}}import{Abi as Yo,Snowbridge as tc,Basejump as nc}from"@galacticcouncil/xc-core";var Oo=80000n,Wo=120000n,Uo=100000n,Ko=2000000n,is=15000000000000n;var Jo={};Ut(Jo,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>zo,AssethubClient:()=>ke,BaseClient:()=>Re,HydrationClient:()=>te,getAllAssetDepositLimits:()=>ms,getAssetDepositLimit:()=>cs,getGlobalWithdrawLimit:()=>us});import{encodeLocation as qo}from"@galacticcouncil/common";import{hub as K0,XcmVersionedAssetId as jo}from"@galacticcouncil/descriptors";var Re=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??K0}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,jo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,jo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as dn,XcmV5Junction as q0,XcmVersionedLocation as j0,XcmVersionedXcm as z0,XcmVersionedAssetId as $0}from"@galacticcouncil/descriptors";import{encodeLocation as J0}from"@galacticcouncil/common";import{Twox128 as Y0,u128 as Q0}from"@polkadot-api/substrate-bindings";import{toHex as Z0}from"@polkadot-api/utils";var ke=class extends Re{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),o=J0(s);if(n===0)return!0;let a=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(n));return a&&a.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(s),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,n){let s=new TextEncoder().encode(e),o=Z0(Y0(s)),a=await this.client._request("state_getStorage",[o]);if(!a)return n;let r=Q0.dec(a);return r===0n?n:r}async calculateDeliveryFee(e,n){let s=j0.V5({parents:1,interior:dn.X1(q0.Parachain(n))}),o=$0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,z0.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};import{hydration as ec}from"@galacticcouncil/descriptors";var zo=14400;function $o(t,e,n,s,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,d,u,l;n&&(n.type==="Locked"?(d=n.value,m=o<n.value):(u=n.value[0],l=n.value[1]));let f=s?.type==="Local"?"Local":"External",y=!m&&u!==void 0&&u+zo<=o,A=null;if(r!==null)if(m)A=0n;else if(y)A=r;else{let E=l??a,T=a>E?a-E:0n;A=r>T?r-T:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:d,lastResetBlock:u,baselineIssuance:l,currentIssuance:a,headroom:A,category:f,periodExpired:y}}async function cs(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),n]);return $o(e,s,o,a,r,c)}async function ms(t){let[e,n,s,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(n.map(u=>[u.keyArgs[0],u.value])),i=new Map(s.map(u=>[u.keyArgs[0],u.value])),m=new Map(r.map(u=>[u.keyArgs[0],u.value])),d=new Map;for(let u of e){let l=u.keyArgs[0],f=u.value;if(f?.xcm_rate_limit==null)continue;let y=l===0?a:m.get(l)??0n,A=$o(l,f,c.get(l),i.get(l),o,y);d.set(l.toString(),A)}return d}async function us(t){let[e,n,s,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=s??void 0,r=a!==void 0&&o<a,[c,i]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:d}=e,u=c;if(!r&&d>0n){let f=o>i?o-i:0n;if(f>0n){let y=f>d?d:f,A=c*y/d;u=c>A?c-A:0n}}let l=r||u>=m?0n:m-u;return{configured:!0,limit:m,windowMs:d,used:u,lastUpdateMs:i,headroom:l,lockdown:r,lockdownUntilMs:a}}var te=class extends Re{constructor(e){super(e,ec)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),o=await this.api().query.AssetRegistry.Assets.getValue(s);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,n){let s=Number(n),o=await this.api().query.Tokens.Accounts.getValue(e,s),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return cs(this.api(),n)}getAllAssetDepositLimits(){return ms(this.api())}getGlobalWithdrawLimit(){return us(this.api())}};function sc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:n})=>{let s=n,o=new te(s),a=new ke(t.hub),r=rn(e,s),c=So(e,s),i=Mt(De),m=250000000n,d=Ys(De,s.parachainId),[u,l,f,y]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,nn),a.calculateDestinationFeeV5(d,x)]),A=q(u,33n),E=q(l,33n),T=q(f,33n),D=q(y,33n)+E,G=A,J=await a.quoteEtherForDot(i,D),w=q(J,30n),ve=w<is*2n?is*2n:w,st=q(await a.quoteEtherForDot(i,G),100n),$e=q(await a.quoteDotToEther(i,m+T),30n);return{amount:ve+$e+st,breakdown:{executionFee:ve,relayerFee:$e,remoteEtherFee:st,hydrationDotFee:G}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:o})=>{let a=s,r=o,c=new ke(t.hub),i=Mt(De),m=$n(e,a),[d,u,l]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,nn),c.calculateDestinationFee(m,n)]),f=await r.evmClient.getProvider().getGasPrice(),y=Ko+Wo+Oo+Uo,A=f*y,E=q(A,10n),T=d+q(u,33n)+q(l,33n),_=q(await c.quoteDotForExactEther(i,E),20n),D=new te(a),G=On({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:Oe}),J=q(await D.calculateDestinationFeeV5(G,x),33n);return{amount:T+_+J,breakdown:{dotRemoteFee:T,dotToEtherSwapAmount:_,etherFeeAmount:E,sourceExecutionFee:J}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:n,source:s})=>{let o=s,a=n,r=tc.fromChain(o),c=new Re(a),i=new ke(t.hub),m=rn(e,a),[d,u]=await Promise.all([c.calculateDestinationFee(m,x),i.calculateDeliveryFee(m,a.parachainId)]),l=u+q(d,25n),f=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Yo.Snowbridge,address:r.getGateway(),args:[f,a.parachainId,l],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:l}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:n,source:s})=>{let o=s,a=new ke(t.hub),r=$n(e,o),c=rn(e,o),[i,m,d,u,l]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,nn),a.calculateDestinationFee(r,n),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,n)]);return{amount:i+m+q(d,25n)+u+q(l,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:d,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:l}}}})}}function oc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let o=n,a=s,r=t?.reserve;if(Eo(e,o,a,r),r){let l=new Re(a),f=new Re(r),y=es(e,a),A=Fo(e,r,a),[E,T]=await Promise.all([l.calculateDestinationFee(y,e),f.calculateDestinationFee(A,e)]),_=T+E,D=q(_,20n),G=D-_;return{amount:D,breakdown:{reserveFee:T,destinationFee:E,margin:G}}}let c=new Re(a),i=To(e,a),m=await c.calculateDestinationFee(i,e),d=q(m,20n),u=d-m;return{amount:d,breakdown:{totalFee:m,margin:u}}}})}}function ac(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=nc.fromChain(n),o=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Yo.Basejump,address:s.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function S(){return{Basejump:ac,XcmPaymentApi:oc,Snowbridge:sc}}var rc="0";function ic(){return{build:async({address:t,chain:e})=>{let s=await new te(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=s?s.toString():rc,a=e.findAssetById(o);return a?a.asset:_t}}}var cc=()=>({accountCurrencyMap:ic});function jt(){return{multiTransactionPayment:cc}}import{EvmParachain as mc,MoveConfig as uc,Ntt as dc,suiPkg as ln,Wormhole as Qo}from"@galacticcouncil/xc-core";import{Transaction as lc}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as ds}from"@mysten/sui/utils";import{encoding as pc}from"@wormhole-foundation/sdk-base";var fc=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=dc.fromChain(r,s),m=Qo.fromChain(r),d=Qo.fromChain(c),u=r.client,l=e;c instanceof mc&&(l=await c.getDerivatedAddress(e));let f=pc.hex.decode(d.normalizeAddress(l)),y=m.getCoreBridge(),A=i.manager,E=i.transceiver.wormhole,T=i.token,[_,D,G,J]=await Promise.all([ln.getWormholePackageId(u,y),ln.getCurrentPackageId(u,A),ln.getCurrentPackageId(u,E),ln.getCoinMetadataId(u,T)]),w=new lc,[ve]=w.splitCoins(w.gas,[w.pure.u64(n)]),[st]=w.moveCall({target:`${D}::upgrades::new_version_gated`,arguments:[]}),[$e,Yt]=w.moveCall({target:`${D}::ntt::prepare_transfer`,typeArguments:[T],arguments:[w.object(A),ve,w.object(J),w.pure.u16(d.getWormholeId()),w.pure.vector("u8",Array.from(f)),w.pure.option("vector<u8>",null),w.pure.bool(!1)]}),[Bn]=w.moveCall({target:`${D}::state::get_next_sequence`,typeArguments:[T],arguments:[w.object(A)]});w.moveCall({target:`${D}::ntt::transfer_tx_sender`,typeArguments:[T],arguments:[w.object(A),st,w.object(J),$e,w.object(ds)]});let[Pn]=w.moveCall({target:`${D}::state::create_transceiver_message`,typeArguments:[`${G}::wormhole_transceiver::TransceiverAuth`,T],arguments:[w.object(A),Bn,w.object(ds)]}),[Xt]=w.moveCall({target:`${G}::wormhole_transceiver::release_outbound`,typeArguments:[`${D}::auth::ManagerAuth`],arguments:[w.object(E),Pn]}),[Qt]=w.splitCoins(w.gas,[w.pure.u64(0n)]);w.moveCall({target:`${_}::publish_message::publish_message`,arguments:[w.object(y),Qt,Xt,w.object(ds)]});let[Wt]=w.moveCall({target:"0x2::coin::from_balance",typeArguments:[T],arguments:[Yt]});return w.mergeCoins(w.gas,[Wt]),new uc({transaction:w,func:"transfer",module:"NttManager"})}}),Zo=()=>({transfer:fc});function ea(){return{Ntt:Zo}}function ls(){return{Wormhole:ea}}import{EvmParachain as hc,Ntt as yc,ProgramConfig as bc,SolanaBalanceType as gc,Wormhole as ta}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as xc}from"@solana/spl-token";import{Keypair as Ac,TransactionMessage as wc}from"@solana/web3.js";import{toChain as Cc}from"@wormhole-foundation/sdk-base";import{UniversalAddress as kc}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as vc}from"@wormhole-foundation/sdk-solana";import{SolanaNtt as Ec}from"@wormhole-foundation/sdk-solana-ntt";import"@wormhole-foundation/sdk-definitions-ntt";async function Tc(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(s=>t.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null)}async function Fc(t,e,n){let s=await Tc(t,e);return{instructions:"message"in e?wc.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions,signers:n,lookupTables:s}}var Sc=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=yc.fromChain(c,s),d=ta.fromChain(c),u=ta.fromChain(i),l=e;i instanceof hc&&(l=await i.getDerivatedAddress(e));let f=new Ec("Mainnet","Solana",c.connection,{coreBridge:d.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),y=c.getBalanceType(s)===gc.Native,A=Ac.generate(),E=[];for await(let D of f.transfer(new vc(o),n,{chain:Cc(u.getWormholeId()),address:new kc(u.normalizeAddress(l))},{queue:!1,automatic:!1,wrapNative:y},A)){let{transaction:G,signers:J}=D.transaction;E.push(await Fc(c.connection,G,J??[]))}let T=y?BigInt(await xc(c.connection)):0n,_=E[E.length-1];return new bc({instructions:_.instructions,signers:_.signers,lookupTables:_.lookupTables,prerequisites:E.slice(0,-1),rentReserve:T,func:"transfer",module:"NttManager"})}}),na=()=>({transfer:Sc});function sa(){return{Ntt:na}}function ps(){return{Wormhole:sa}}var aa={};Ut(aa,{Tag:()=>At});var At=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(At||{});function ia(t,e){return new ra({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ca(t,e){return new ra({source:{asset:t,fee:{asset:B},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:S().Basejump().quoteFee(),asset:t}},contract:Se().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Pc=[ca(We,Ye)],Xc=[ia(We,Ye)],ma=new Bc({chain:Dt,routes:[...Xc,...Pc]});import{AssetRoute as ua,ChainRoutes as _c}from"@galacticcouncil/xc-core";import{AssetRoute as fs}from"@galacticcouncil/xc-core";function wt(t,e){return new fs({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ne(t,e){return new fs({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:S().Snowbridge().calculateInboundFee({hub:F}),asset:B}},contract:Se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function se(t,e){return new fs({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:S().Snowbridge().calculateInboundFeeV1({hub:F}),asset:B}},contract:Se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Dc=[wt(Je,ot),wt(Ve,at),wt(C,it),wt(g,rt),wt(Me,ct),wt(et,tt),wt(B,tt)],Ic=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:S().Snowbridge().calculateInboundFee({hub:F}),asset:B}},contract:Se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ne(re,re),ne(ie,ie),ne(ce,ce),ne(me,me),ne(pe,pe),ne(he,he),ne(ye,ye),ne(de,de),ne(ue,ue),ne(le,le),ne(fe,fe),ne(be,be),ne(ge,ge),ne(C,Ze),ne(g,Qe)],Rc=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:S().Snowbridge().calculateInboundFeeV1({hub:F}),asset:B}},contract:Se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),se(re,re),se(ie,ie),se(ce,ce),se(me,me),se(pe,pe),se(he,he),se(ye,ye),se(de,de),se(ue,ue),se(le,le),se(fe,fe),se(be,be),se(ge,ge),se(C,Ze),se(g,Qe)],da=new _c({chain:k,routes:[...Dc,...Ic,...Rc]});var la=[ma,da];import{AssetRoute as hn,ChainRoutes as fa}from"@galacticcouncil/xc-core";import{AssetRoute as hs}from"@galacticcouncil/xc-core";var St=0,Lc=t=>{let{source:e}=t;return!!e.feeSwap},Hc=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},pa=p().assetConversion().swapTokensForExactTokens({slippage:30});function Vc(t,e,n){return new hs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:g}},extrinsic:xt(Hc,pa).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function pn(t,e,n){return new hs({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:xt(Lc,pa).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function zt(t,e,n){return new hs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function fn(t){return Vc(t,h,.02)}var Nc=[new hn({source:{asset:x,fee:{asset:x,extra:St}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new hn({source:{asset:v,fee:{asset:x,extra:St}},destination:{chain:h,asset:v,fee:{amount:1e-4,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),zt(g,h,.02),zt(C,h,.02),fn(nt)],Mc=[new hn({source:{asset:v,fee:{asset:x,extra:St}},destination:{chain:Ge,asset:v,fee:{amount:.001,asset:v}},extrinsic:p().polkadotXcm().transferAssets()})],Gc=[zt(g,H,.03),zt(C,H,.03)],Oc=[new hn({source:{asset:L,fee:{asset:x,extra:St}},destination:{chain:ut,asset:L,fee:{amount:2.5,asset:L}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],ha=new fa({chain:mt,routes:[pn(g,h,.02),pn(C,h,.02),pn(x,h,.001)]}),ya=new fa({chain:F,routes:[...Nc,...Mc,...Gc,...Oc]});import{AssetRoute as Ct,ChainRoutes as Wc}from"@galacticcouncil/xc-core";var Uc=[new Ct({source:{asset:I},destination:{chain:h,asset:I,fee:{amount:.044306118,asset:I}},extrinsic:p().polkadotXcm().reserveTransferAssets()}),new Ct({source:{asset:X,fee:{asset:I}},destination:{chain:h,asset:X,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:N,fee:{asset:I}},destination:{chain:h,asset:N,fee:{amount:2e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:Ee,fee:{asset:I}},destination:{chain:h,asset:Ee,fee:{amount:.01,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:K,fee:{asset:I}},destination:{chain:h,asset:K,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:U,fee:{asset:I}},destination:{chain:h,asset:U,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:g,fee:{asset:I}},destination:{chain:h,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:C,fee:{asset:I}},destination:{chain:h,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ba=new Wc({chain:Y,routes:[...Uc]});import{AssetRoute as ze,ChainRoutes as Kc}from"@galacticcouncil/xc-core";var qc=[new ze({source:{asset:X},destination:{chain:h,asset:X,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:K,fee:{asset:X}},destination:{chain:h,asset:K,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:U,fee:{asset:X}},destination:{chain:h,asset:U,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,fee:{asset:X}},destination:{chain:h,asset:x,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ze({source:{asset:I,fee:{asset:X}},destination:{chain:h,asset:I,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:Y}),asset:I}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:N,fee:{asset:X}},destination:{chain:h,asset:N,fee:{amount:625e-8,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:g,fee:{asset:X}},destination:{chain:h,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:h,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],jc=[new ze({source:{asset:g,fee:{asset:X}},destination:{chain:F,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:F,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ga=new Kc({chain:H,routes:[...qc,...jc]});import{AssetRoute as Pt,ChainRoutes as $c}from"@galacticcouncil/xc-core";var oe=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as Bt}from"@galacticcouncil/xc-core";var zc=.02,ys=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},bs=p().router().buy({slippage:30});function Ae(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:e,asset:t,fee:{amount:S().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})}function kt(t,e){return new Bt({source:{asset:t,fee:oe()},destination:{chain:e,asset:t,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function yn(t){return new Bt({source:{asset:t,fee:oe()},destination:{chain:F,asset:t,fee:{amount:zc,asset:g}},extrinsic:xt(ys,bs).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function gs(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:Ge,asset:t,fee:{amount:e,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:n})})}function Le(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function z(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:S().Snowbridge().calculateOutboundFee({hub:F}),asset:x}},extrinsic:xt(ys,bs).prior(p().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function $(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:S().Snowbridge().calculateOutboundFeeV1({hub:F}),asset:x}},extrinsic:xt(ys,bs).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var Jc=[kt(x,F),kt(v,F),kt(g,F),kt(C,F),yn(nt)],Yc=[gs(v,.05,.005),gs(x,.2,.02)],Qc=[Ae(I,Y),Ae(X,Y,H),new Pt({source:{asset:N,fee:oe()},destination:{chain:Y,asset:N,fee:{amount:2e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Pt({source:{asset:Ee,fee:oe()},destination:{chain:Y,asset:Ee,fee:{amount:.01,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),Ae(K,Y,H),Ae(U,Y,H),Ae(g,Y,F),Ae(C,Y,F)],Zc=[Ae(X,H),Ae(K,H),Ae(U,H),Ae(I,H,Y),new Pt({source:{asset:N,fee:oe()},destination:{chain:H,asset:N,fee:{amount:5e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),Ae(g,H,F),Ae(C,H,F),new Pt({source:{asset:x,fee:oe()},destination:{chain:H,asset:x,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],em=[new Pt({source:{asset:L,fee:oe()},destination:{chain:ut,asset:L,fee:{amount:2.5,asset:L}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],tm=[Ae(Ne,Lt)],nm=[new Pt({source:{asset:we,fee:oe()},destination:{chain:Ht,asset:we,fee:{amount:.02,asset:we}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],sm=[new Pt({source:{asset:Te,fee:oe()},destination:{chain:Rt,asset:Te,fee:{amount:1.1,asset:Te}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],om=[Ae(He,It)],am=[Le(ot,Je,k),Le(at,Ve,k),Le(it,C,k),Le(rt,g,k),Le(ct,Me,k),Le(tt,B,k)],rm=[Le(Ye,We,Dt)],im=[Le(Ce,Ce,dt),Le(Xe,Xe,dt),Le(_e,_e,dt)],cm=[Le(Fe,Fe,Vt)],mm=[z(B,B,k),z(re,re,k),z(ie,ie,k),z(ce,ce,k),z(me,me,k),z(pe,pe,k),z(he,he,k),z(ye,ye,k),z(be,be,k),z(de,de,k),z(ue,ue,k),z(le,le,k),z(fe,fe,k),z(ge,ge,k),z(Ze,C,k),z(Qe,g,k)],um=[$(B,B,k),$(re,re,k),$(ie,ie,k),$(ce,ce,k),$(me,me,k),$(pe,pe,k),$(he,he,k),$(ye,ye,k),$(be,be,k),$(de,de,k),$(ue,ue,k),$(le,le,k),$(fe,fe,k),$(ge,ge,k),$(Ze,C,k),$(Qe,g,k)],dm=[kt(x,mt),kt(g,mt),kt(C,mt)],xa=new $c({chain:h,routes:[...Jc,...Qc,...Zc,...dm,...rm,...am,...mm,...im,...cm,...um,...nm,...Yc,...em,...om,...sm,...tm]});import{AssetRoute as Aa,ChainRoutes as lm}from"@galacticcouncil/xc-core";var pm=[new Aa({source:{asset:L},destination:{chain:h,asset:L,fee:{amount:.01,asset:L}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],fm=[new Aa({source:{asset:L},destination:{chain:F,asset:L,fee:{amount:.1,asset:L}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],wa=new lm({chain:ut,routes:[...pm,...fm]});import{AssetRoute as hm,ChainRoutes as ym}from"@galacticcouncil/xc-core";var bm=[new hm({source:{asset:Ne},destination:{chain:h,asset:Ne,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Ca=new ym({chain:Lt,routes:[...bm]});import{AssetRoute as gm,ChainRoutes as xm}from"@galacticcouncil/xc-core";var Am=[new gm({source:{asset:Te},destination:{chain:h,asset:Te,fee:{amount:.2,asset:Te}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],ka=new xm({chain:Rt,routes:[...Am]});import{AssetRoute as wm,ChainRoutes as Cm}from"@galacticcouncil/xc-core";var km=[new wm({source:{asset:we,fee:{asset:we,extra:.030555}},destination:{chain:h,asset:we,fee:{amount:.03,asset:we}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],va=new Cm({chain:Ht,routes:[...km]});import{AssetRoute as vm,ChainRoutes as Em}from"@galacticcouncil/xc-core";var Tm=[new vm({source:{asset:He},destination:{chain:h,asset:He,fee:{amount:.205,asset:He}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],Ea=new Em({chain:It,routes:[...Tm]});var Ta=[ya,ha,ba,ga,xa,wa,Ea,Ca,ka,va];import{AssetRoute as Fm,ChainRoutes as Sm}from"@galacticcouncil/xc-core";function xs(t){return new Fm({source:{asset:t,fee:{asset:Ce}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:ps().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Bm=[xs(Ce),xs(Xe),xs(_e)],Fa=new Sm({chain:dt,routes:[...Bm]});var Sa=[Fa];import{AssetRoute as Pm,ChainRoutes as Xm}from"@galacticcouncil/xc-core";function _m(t){return new Pm({source:{asset:t,fee:{asset:Fe}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},move:ls().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Dm=[_m(Fe)],Ba=new Xm({chain:Vt,routes:[...Dm]});var Pa=[Ba];import{AssetRoute as bn,ChainRoutes as Im}from"@galacticcouncil/xc-core";import{AssetRoute as Tx}from"@galacticcouncil/xc-core";var $t=.0015;var Rm=new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:F,asset:v,fee:{amount:.002,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lm=new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:Nt,asset:v,fee:{amount:.0012,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Hm=[new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:h,asset:v,fee:{amount:.04,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new bn({source:{asset:x,fee:{asset:v,extra:$t}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Xa=new Im({chain:Ge,routes:[Lm,Rm,...Hm]});import{AssetRoute as _a,ChainRoutes as Vm}from"@galacticcouncil/xc-core";var As=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});var Nm=[new _a({source:{asset:g,fee:As()},destination:{chain:Ge,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Mm=[new _a({source:{asset:v,fee:As()},destination:{chain:Ge,asset:v,fee:{amount:.0012,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Da=new Vm({chain:Nt,routes:[...Nm,...Mm]});var Ia=[Xa,Da];var Gm=[...la,...Ta,...Sa,...Pa,...Ia],Om=new Map(Gm.map(t=>[t.chain.key,t]));import{Parachain as Na}from"@galacticcouncil/xc-core";import{Parachain as Wm,TransferValidation as Ra,TransferValidationError as La}from"@galacticcouncil/xc-core";var gn=class extends Ra{async validate(e){let{source:n}=e,{chain:s,fee:o,feeBalance:a}=n;if(a.amount<o.amount)throw new La("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:s.name,error:"fee.insufficientBalance"})}},xn=class extends Ra{async skipFor(e){let{asset:n,source:s}=e,{enabled:o}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=s,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new La("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e instanceof Wm)return(await e.getMin(n)).amount;let s=e.getAssetMin(n);return BigInt(s*10**n.decimals)}};import{TransferValidation as Ha,TransferValidationError as Va}from"@galacticcouncil/xc-core";var An=class extends Ha{async skipFor(e){let{asset:n,destination:s}=e,o=s.chain;return await new ke(o).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain;if(await new ke(a).getSystemAccountBalance(s)===0n)throw new Va("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},wn=class extends Ha{async validate(e){let{asset:n,sender:s,source:o}=e,a=o.chain;if(await new ke(a).checkIfFrozen(s,n))throw new Va("Asset_Frozen",{asset:n.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Tn,TransferValidationError as Jt}from"@galacticcouncil/xc-core";var Um=12,Km=1,qm=18,Cn=class extends Tn{async skipFor(e){let{destination:n}=e,s=n.chain,o=new te(s),a=n.balance.amount>0n,r=await o.checkIfSufficient(n.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain,r=new te(a),c=await r.getFeeAsset(s),i=a.findAssetById(c),m=i.min||Km,d=i.decimals||Um,u=m*Math.pow(10,d),l=await r.getAssetBalance(s,c);if(BigInt(u*1.1)>l)throw new Jt("Insufficient_Ed",{amount:u,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},kn=class extends Tn{async validate(e){let{amount:n,asset:s,destination:o}=e,a=o.chain,c=await new te(a).getAssetDepositLimit(s);if(c.locked)throw new Jt("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&n>c.headroom)throw new Jt("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},vn=class extends Tn{async validate(e){let{source:n}=e,s=n.chain,a=await new te(s).getGlobalWithdrawLimit();if(a.lockdown)throw new Jt("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},En=class extends Tn{async skipFor(e){let{source:n,transact:s}=e,{enabled:o}=n.destinationFeeSwap||{};return!(!!s&&s.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:s,source:o}=e,a=o.chain,r=new te(a),c=a.getBalanceAssetId(Pe),i=a.getAssetDecimals(Pe)||qm,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(s,c.toString())<BigInt(m))throw new Jt("Insufficient_Ed",{amount:1,asset:Pe.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var ae={isAny:()=>!0,isHydration:t=>t instanceof Na&&t.parachainId===2034,isHub:t=>t instanceof Na&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},jm=[new gn(ae.isAny,ae.isAny),new xn(ae.isAny,ae.isAny),new An(ae.isAny,ae.isHub),new wn(ae.isHub,ae.isAny),new Cn(ae.isAny,ae.isHydration),new En(ae.isHydration,ae.isAny),new kn(ae.isAny,ae.isHydration),new vn(ae.isHydration,ae.isAny)];var Ga={};Ut(Ga,{AssethubDex:()=>Cs,HydrationDex:()=>ws});import{pool as zm,sor as $m,tx as Jm}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as Ym}from"@galacticcouncil/common";import{Binary as Qm}from"polkadot-api";import{memoize1 as Zm}from"@thi.ng/memoize";var{PoolType:Fn}=zm,{TradeRouteBuilder:eu,TradeRouter:tu}=$m,{TxBuilderFactory:nu}=Jm,ws=class{chain;client;poolCtx;txBuilder;getCtx=Zm(async e=>{console.log("init swap router",e,"\u2705");let n=new tu(this.poolCtx);return n.withFilter({useOnly:[Fn.Aave,Fn.Omni,Fn.Stable,Fn.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new te(this.chain),this.txBuilder=new nu(n.client,n.evm)}async getCalldata(e,n,s,o,a=0){let r=Number(this.chain.getMetadataAssetId(n)),c=Number(this.chain.getMetadataAssetId(s)),i=o.amount,m=await this.getCtx(1),d=await m.getMostLiquidRoute(r,c),u=await m.getBuy(r,c,i,d),y=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Qm.toHex(y)}async getQuote(e,n,s,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(n)),c=s.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),d=await i.getBuy(a,r,c,m);return{amount:d.amountIn,route:eu.build(d.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,s.amount)};throw m}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*n,r=Math.pow(10,Ym);return a/BigInt(r)}};import{encodeLocation as Ma}from"@galacticcouncil/common";var Cs=class{chain;client;constructor(e){this.chain=e,this.client=new ke(this.chain)}async getCalldata(e,n,s,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(n),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Ma(o),Ma(a),s.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as ou}from"@galacticcouncil/xc-core";import{Asset as su}from"@galacticcouncil/xc-core";function Sn(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new su({key:[o,n,e].join("_"),originSymbol:s})}function Oa(t){let{decimals:e,id:n}=t;return{asset:Sn(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function Wa(t){let{decimals:e,id:n,internalId:s,origin:o}=t;return{asset:Sn(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var ks=class extends ou{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),o=a=>!!n.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=Sn(a),c=Oa(a),i=Wa(a);console.log("\u{1F480} Registering "+r.key),s.updateAsset(c),n.updateAsset(i),this.updateAsset(r),this.updateChainRoute(s,fn(r)),this.updateChainRoute(n,yn(r))})}};export{ks as HydrationConfigService,ja as assetsMap,oa as builders,$r as chainsMap,Jo as clients,Ga as dex,Om as routesMap,aa as tags,jm as validations};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacticcouncil/xc-cfg",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0-pr344-0cf6035",
|
|
4
4
|
"description": "Cross-chain hydradx & basilisk dapp configuration",
|
|
5
5
|
"author": "GalacticCouncil",
|
|
6
6
|
"repository": {
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
"test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest --silent"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@galacticcouncil/xc-core": "
|
|
34
|
+
"@galacticcouncil/xc-core": "2.1.0-pr344-0cf6035",
|
|
35
35
|
"@thi.ng/memoize": "^4.0.2"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@galacticcouncil/common": "
|
|
38
|
+
"@galacticcouncil/common": "1.2.0-pr344-0cf6035",
|
|
39
39
|
"@galacticcouncil/descriptors": ">=2.2.0",
|
|
40
|
-
"@galacticcouncil/sdk-next": "
|
|
40
|
+
"@galacticcouncil/sdk-next": "1.6.0-pr344-0cf6035",
|
|
41
41
|
"polkadot-api": "^2.1.7",
|
|
42
42
|
"viem": "^2.38.3"
|
|
43
43
|
}
|