@galacticcouncil/xc-cfg 2.2.0 → 2.2.1
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 +1 -1
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 y}from"@galacticcouncil/xc-core";var re=new y({key:"aave",originSymbol:"AAVE"}),Xn=new y({key:"ajun",originSymbol:"AJUN"}),ie=new y({key:"apyusd",originSymbol:"apyUSD"}),D=new y({key:"astr",originSymbol:"ASTR"}),X=new y({key:"bnc",originSymbol:"BNC"}),_n=new y({key:"bsx",originSymbol:"BSX"}),ce=new y({key:"cfg_new",originSymbol:"CFG"}),Dn=new y({key:"cru",originSymbol:"CRU"}),Je=new y({key:"dai",originSymbol:"DAI"}),ot=new y({...Je,key:"dai_wh"}),x=new y({key:"dot",originSymbol:"DOT"}),B=new y({key:"eth",originSymbol:"ETH"}),me=new y({key:"ena",originSymbol:"ENA"}),We=new y({key:"eurc",originSymbol:"EURC"}),Ye=new y({...We,key:"eurc_wh"}),Pe=new y({key:"glmr",originSymbol:"GLMR"}),_t=new y({key:"hdx",originSymbol:"HDX"}),N=new y({key:"ibtc",originSymbol:"IBTC"}),Ee=new y({key:"intr",originSymbol:"INTR"}),Xe=new y({key:"jitoSol",originSymbol:"jitoSOL"}),E=new y({key:"ksm",originSymbol:"KSM"}),ue=new y({key:"ldo",originSymbol:"LDO"}),de=new y({key:"lbtc",originSymbol:"LBTC"}),we=new y({key:"ewt",originSymbol:"EWT"}),le=new y({key:"link",originSymbol:"LINK"}),L=new y({key:"myth",originSymbol:"MYTH"}),He=new y({key:"neuro",originSymbol:"NEURO"}),Te=new y({key:"pen",originSymbol:"PEN"}),pe=new y({key:"paxg",originSymbol:"PAXG"}),_e=new y({key:"prime",originSymbol:"PRIME"}),fe=new y({key:"sky",originSymbol:"SKY"}),Ce=new y({key:"sol",originSymbol:"SOL"}),Fe=new y({key:"sui",originSymbol:"SUI"}),he=new y({key:"susde",originSymbol:"sUSDe"}),Ve=new y({key:"susds",originSymbol:"sUSDS"}),at=new y({...Ve,key:"susds_wh"}),ye=new y({key:"tbtc",originSymbol:"tBTC"}),be=new y({key:"trac",originSymbol:"TRAC"}),Ne=new y({key:"unq",originSymbol:"UNQ"}),b=new y({key:"usdt",originSymbol:"USDT"}),rt=new y({...b,key:"usdt_wh"}),Qe=new y({...b,key:"usdt_eth"}),C=new y({key:"usdc",originSymbol:"USDC"}),it=new y({...C,key:"usdc_wh"}),Ze=new y({...C,key:"usdc_eth"}),U=new y({key:"vastr",originSymbol:"vASTR"}),K=new y({key:"vdot",originSymbol:"vDOT"}),et=new y({key:"weth",originSymbol:"WETH"}),tt=new y({...et,key:"weth_wh"}),Me=new y({key:"wbtc",originSymbol:"WBTC"}),ct=new y({...Me,key:"wbtc_wh"}),ge=new y({key:"wsteth",originSymbol:"wstETH"}),nt=new y({key:"wud",originSymbol:"WUD"}),qa=[re,Xn,ie,D,_n,ce,Dn,X,Je,ot,x,me,We,Ye,B,Pe,_t,N,Ee,E,ue,de,we,Xe,le,L,He,pe,Te,_e,fe,Ce,Fe,he,Ve,at,be,ye,Ne,C,it,Ze,b,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:b,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"}},[b.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:b,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:E,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Zt.Assets,balanceOverrides:{[x.key]:Zt.System,[E.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"]},T=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:D,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,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:{[D.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:b,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:D,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:D,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:E,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:b,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=[T,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:E,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:b,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Ln.Assets,balanceOverrides:{[E.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:E,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:b,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 Sc}from"@galacticcouncil/xc-core";import{AssetRoute as ra}from"@galacticcouncil/xc-core";var oa={};Ut(oa,{ContractBuilder:()=>Se,ExtrinsicBuilder:()=>p,ExtrinsicDecorator:()=>xt,FeeAmountBuilder:()=>F,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}))},g={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)],S=[P.SetAppendix([P.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})])];S.push(P.ExchangeAsset({give:Q.Definite([{id:W,fun:xe.Fungible(c)}]),want:[{id:d,fun:xe.Fungible(i)}],maximal:!1}));let v=[{type:"ReserveWithdraw",value:Q.Wild(Ue.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],I=Q.Definite([{id:d,fun:xe.Fungible(i)}]);S.push(P.InitiateTransfer({destination:g,remote_fees:{type:"ReserveWithdraw",value:I},preserve_origin:!0,assets:v,remote_xcm:A}),P.SetTopic(m));let _=a+r+c,G=[{id:W,fun:xe.Fungible(_)},{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:S}),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,g=r.feeBreakdown,A=g.sourceExecutionFee??0n,S=g.dotRemoteFee??0n,v=g.dotToEtherSwapAmount??0n,I=g.etherFeeAmount??0n,G=On({tokenAddress:f,senderPubKey:d,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:A,dotRemoteFee:S,dotToEtherSwapAmount:v,etherFeeAmount:I,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,g=r.feeBreakdown.relayerFee,A=r.feeBreakdown.hydrationDotFee,S=r.fee.amount,v=no.getPubKey(e),I=new TextEncoder().encode(`${i.parachainId}${o}${u}${v}${n}${Date.now()}`),_=Wn(Fi(I)),G=Gn({ethChainId:De,destinationParaId:i.parachainId,tokenAddress:l?Bi:u,beneficiaryHex:v,tokenAmount:n,hydrationDotFee:A,topic:_}),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:v,network:void 0}))})),$e=Wn(st.slice(1));return new eo({abi:Zs.Snowbridge,address:m.getGateway(),args:[w,ve,$e,f,g],value:l?S+n:S,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,g=n;if(f>ao){let A=10n**BigInt(f-ao);g=n-n%A}return new _i({abi:oo.NttManager,address:i.manager,args:[g,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),g=bt(l,s.fee.amount),A="limited_reserve_transfer_assets";return new gt({module:ee,func:A,getTx:S=>{let v=S.getUnsafeApi().tx[ee][A];return n.key===s.fee.key?v({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)?v({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[g,f]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):v({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[f,g]},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]},g="limited_teleport_assets";return new gt({module:ee,func:g,getTx:A=>A.getUnsafeApi().tx[ee][g]({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]},g="reserve_transfer_assets";return new gt({module:ee,func:g,getTx:A=>A.getUnsafeApi().tx[ee][g]({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]},g="transfer_assets";return new gt({module:ee,func:g,getTx:A=>A.getUnsafeApi().tx[ee][g]({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 g=O(r),A=i||u.usesCexForwarding?Gt(d,r,u):e,S=O(A),{transferType:v}=t,I=M(V(d,n),m),_=M(V(d,f),m),G=bt(I,s),J=bt(_,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,v,I),Bn={type:m,value:w?I:_},Pn=os(m,v,_),Xt;if(Do(I)&&o.chain.isEvmChain())Xt=cn(m,S,g,I,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,S,u,ve.mode,Ua,Wt)}else Xt=Ro(m,S,$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:g=>g.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),g=O(o),A=M(V(u,a),m),{fee:S}=i,v=un.toBigInt(e.fee,S.decimals),I=s>S.amount?s-(S.amount+v):s;return new gt({module:ee,func:t,getTx:_=>_.getUnsafeApi().tx[ee][t]({dest:je(m,d,u),message:Vo(m,f,A,I,v,g)})})}})}};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:g=>g.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",g=!m&&u!==void 0&&u+zo<=o,A=null;if(r!==null)if(m)A=0n;else if(g)A=r;else{let S=l??a,v=a>S?a-S:0n;A=r>v?r-v: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:g}}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 g=l===0?a:m.get(l)??0n,A=$o(l,f,c.get(l),i.get(l),o,g);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 g=f>d?d:f,A=c*g/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,g]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,nn),a.calculateDestinationFeeV5(d,x)]),A=q(u,33n),S=q(l,33n),v=q(f,33n),_=q(g,33n)+S,G=A,J=await a.quoteEtherForDot(i,_),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+v),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(),g=Ko+Wo+Oo+Uo,A=f*g,S=q(A,10n),v=d+q(u,33n)+q(l,33n),I=q(await c.quoteDotForExactEther(i,S),20n),_=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 _.calculateDestinationFeeV5(G,x),33n);return{amount:v+I+J,breakdown:{dotRemoteFee:v,dotToEtherSwapAmount:I,etherFeeAmount:S,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),g=es(e,a),A=Fo(e,r,a),[S,v]=await Promise.all([l.calculateDestinationFee(g,e),f.calculateDestinationFee(A,e)]),I=v+S,_=q(I,20n),G=_-I;return{amount:_,breakdown:{reserveFee:v,destinationFee:S,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 F(){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)),g=m.getCoreBridge(),A=i.manager,S=i.transceiver.wormhole,v=i.token,[I,_,G,J]=await Promise.all([ln.getWormholePackageId(u,g),ln.getCurrentPackageId(u,A),ln.getCurrentPackageId(u,S),ln.getCoinMetadataId(u,v)]),w=new lc,[ve]=w.splitCoins(w.gas,[w.pure.u64(n)]),[st]=w.moveCall({target:`${_}::upgrades::new_version_gated`,arguments:[]}),[$e,Yt]=w.moveCall({target:`${_}::ntt::prepare_transfer`,typeArguments:[v],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:`${_}::state::get_next_sequence`,typeArguments:[v],arguments:[w.object(A)]});w.moveCall({target:`${_}::ntt::transfer_tx_sender`,typeArguments:[v],arguments:[w.object(A),st,w.object(J),$e,w.object(ds)]});let[Pn]=w.moveCall({target:`${_}::state::create_transceiver_message`,typeArguments:[`${G}::wormhole_transceiver::TransceiverAuth`,v],arguments:[w.object(A),Bn,w.object(ds)]}),[Xt]=w.moveCall({target:`${G}::wormhole_transceiver::release_outbound`,typeArguments:[`${_}::auth::ManagerAuth`],arguments:[w.object(S),Pn]}),[Qt]=w.splitCoins(w.gas,[w.pure.u64(0n)]);w.moveCall({target:`${I}::publish_message::publish_message`,arguments:[w.object(g),Qt,Xt,w.object(ds)]});let[Wt]=w.moveCall({target:"0x2::coin::from_balance",typeArguments:[v],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"@wormhole-foundation/sdk-definitions-ntt";async function Ec(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 Tc(t,e,n){let s=await Ec(t,e);return{instructions:"message"in e?wc.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions,signers:n,lookupTables:s}}var Fc=()=>({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{SolanaNtt:f}=await import("@wormhole-foundation/sdk-solana-ntt"),g=new f("Mainnet","Solana",c.connection,{coreBridge:d.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),A=c.getBalanceType(s)===gc.Native,S=Ac.generate(),v=[];for await(let G of g.transfer(new vc(o),n,{chain:Cc(u.getWormholeId()),address:new kc(u.normalizeAddress(l))},{queue:!1,automatic:!1,wrapNative:A},S)){let{transaction:J,signers:w}=G.transaction;v.push(await Tc(c.connection,J,w??[]))}let I=A?BigInt(await xc(c.connection)):0n,_=v[v.length-1];return new bc({instructions:_.instructions,signers:_.signers,lookupTables:_.lookupTables,prerequisites:v.slice(0,-1),rentReserve:I,func:"transfer",module:"NttManager"})}}),na=()=>({transfer:Fc});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:F().Basejump().quoteFee(),asset:t}},contract:Se().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Bc=[ca(We,Ye)],Pc=[ia(We,Ye)],ma=new Sc({chain:Dt,routes:[...Pc,...Bc]});import{AssetRoute as ua,ChainRoutes as Xc}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:F().Snowbridge().calculateInboundFee({hub:T}),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:F().Snowbridge().calculateInboundFeeV1({hub:T}),asset:B}},contract:Se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var _c=[wt(Je,ot),wt(Ve,at),wt(C,it),wt(b,rt),wt(Me,ct),wt(et,tt),wt(B,tt)],Dc=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:F().Snowbridge().calculateInboundFee({hub:T}),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(b,Qe)],Ic=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:F().Snowbridge().calculateInboundFeeV1({hub:T}),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(b,Qe)],da=new Xc({chain:k,routes:[..._c,...Dc,...Ic]});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,Rc=t=>{let{source:e}=t;return!!e.feeSwap},Lc=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},pa=p().assetConversion().swapTokensForExactTokens({slippage:30});function Hc(t,e,n){return new hs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:b}},extrinsic:xt(Lc,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(Rc,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 Hc(t,h,.02)}var Vc=[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:E,fee:{asset:x,extra:St}},destination:{chain:h,asset:E,fee:{amount:1e-4,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),zt(b,h,.02),zt(C,h,.02),fn(nt)],Nc=[new hn({source:{asset:E,fee:{asset:x,extra:St}},destination:{chain:Ge,asset:E,fee:{amount:.001,asset:E}},extrinsic:p().polkadotXcm().transferAssets()})],Mc=[zt(b,H,.03),zt(C,H,.03)],Gc=[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(b,h,.02),pn(C,h,.02),pn(x,h,.001)]}),ya=new fa({chain:T,routes:[...Vc,...Nc,...Mc,...Gc]});import{AssetRoute as Ct,ChainRoutes as Oc}from"@galacticcouncil/xc-core";var Wc=[new Ct({source:{asset:D},destination:{chain:h,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:p().polkadotXcm().reserveTransferAssets()}),new Ct({source:{asset:X,fee:{asset:D}},destination:{chain:h,asset:X,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:H}),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:N,fee:{asset:D}},destination:{chain:h,asset:N,fee:{amount:2e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:Ee,fee:{asset:D}},destination:{chain:h,asset:Ee,fee:{amount:.01,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:K,fee:{asset:D}},destination:{chain:h,asset:K,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:H}),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:U,fee:{asset:D}},destination:{chain:h,asset:U,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:H}),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:b,fee:{asset:D}},destination:{chain:h,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:C,fee:{asset:D}},destination:{chain:h,asset:C,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ba=new Oc({chain:Y,routes:[...Wc]});import{AssetRoute as ze,ChainRoutes as Uc}from"@galacticcouncil/xc-core";var Kc=[new ze({source:{asset:X},destination:{chain:h,asset:X,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:K,fee:{asset:X}},destination:{chain:h,asset:K,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:U,fee:{asset:X}},destination:{chain:h,asset:U,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,fee:{asset:X}},destination:{chain:h,asset:x,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ze({source:{asset:D,fee:{asset:X}},destination:{chain:h,asset:D,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:Y}),asset:D}},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:b,fee:{asset:X}},destination:{chain:h,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:h,asset:C,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],qc=[new ze({source:{asset:b,fee:{asset:X}},destination:{chain:T,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:T,asset:C,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ga=new Uc({chain:H,routes:[...Kc,...qc]});import{AssetRoute as Pt,ChainRoutes as zc}from"@galacticcouncil/xc-core";var oe=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as Bt}from"@galacticcouncil/xc-core";var jc=.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:F().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:F().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function yn(t){return new Bt({source:{asset:t,fee:oe()},destination:{chain:T,asset:t,fee:{amount:jc,asset:b}},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:F().Snowbridge().calculateOutboundFee({hub:T}),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:F().Snowbridge().calculateOutboundFeeV1({hub:T}),asset:x}},extrinsic:xt(ys,bs).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var $c=[kt(x,T),kt(E,T),kt(b,T),kt(C,T),yn(nt)],Jc=[gs(E,.05,.005),gs(x,.2,.02)],Yc=[Ae(D,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(b,Y,T),Ae(C,Y,T)],Qc=[Ae(X,H),Ae(K,H),Ae(U,H),Ae(D,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(b,H,T),Ae(C,H,T),new Pt({source:{asset:x,fee:oe()},destination:{chain:H,asset:x,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Zc=[new Pt({source:{asset:L,fee:oe()},destination:{chain:ut,asset:L,fee:{amount:2.5,asset:L}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],em=[Ae(Ne,Lt)],tm=[new Pt({source:{asset:we,fee:oe()},destination:{chain:Ht,asset:we,fee:{amount:.02,asset:we}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],nm=[new Pt({source:{asset:Te,fee:oe()},destination:{chain:Rt,asset:Te,fee:{amount:1.1,asset:Te}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],sm=[Ae(He,It)],om=[Le(ot,Je,k),Le(at,Ve,k),Le(it,C,k),Le(rt,b,k),Le(ct,Me,k),Le(tt,B,k)],am=[Le(Ye,We,Dt)],rm=[Le(Ce,Ce,dt),Le(Xe,Xe,dt),Le(_e,_e,dt)],im=[Le(Fe,Fe,Vt)],cm=[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,b,k)],mm=[$(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,b,k)],um=[kt(x,mt),kt(b,mt),kt(C,mt)],xa=new zc({chain:h,routes:[...$c,...Yc,...Qc,...um,...am,...om,...cm,...rm,...im,...mm,...tm,...Jc,...Zc,...sm,...nm,...em]});import{AssetRoute as Aa,ChainRoutes as dm}from"@galacticcouncil/xc-core";var lm=[new Aa({source:{asset:L},destination:{chain:h,asset:L,fee:{amount:.01,asset:L}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],pm=[new Aa({source:{asset:L},destination:{chain:T,asset:L,fee:{amount:.1,asset:L}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],wa=new dm({chain:ut,routes:[...lm,...pm]});import{AssetRoute as fm,ChainRoutes as hm}from"@galacticcouncil/xc-core";var ym=[new fm({source:{asset:Ne},destination:{chain:h,asset:Ne,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Ca=new hm({chain:Lt,routes:[...ym]});import{AssetRoute as bm,ChainRoutes as gm}from"@galacticcouncil/xc-core";var xm=[new bm({source:{asset:Te},destination:{chain:h,asset:Te,fee:{amount:.2,asset:Te}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],ka=new gm({chain:Rt,routes:[...xm]});import{AssetRoute as Am,ChainRoutes as wm}from"@galacticcouncil/xc-core";var Cm=[new Am({source:{asset:we,fee:{asset:we,extra:.030555}},destination:{chain:h,asset:we,fee:{amount:.03,asset:we}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],va=new wm({chain:Ht,routes:[...Cm]});import{AssetRoute as km,ChainRoutes as vm}from"@galacticcouncil/xc-core";var Em=[new km({source:{asset:He},destination:{chain:h,asset:He,fee:{amount:.205,asset:He}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],Ea=new vm({chain:It,routes:[...Em]});var Ta=[ya,ha,ba,ga,xa,wa,Ea,Ca,ka,va];import{AssetRoute as Tm,ChainRoutes as Fm}from"@galacticcouncil/xc-core";function xs(t){return new Tm({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 Sm=[xs(Ce),xs(Xe),xs(_e)],Fa=new Fm({chain:dt,routes:[...Sm]});var Sa=[Fa];import{AssetRoute as Bm,ChainRoutes as Pm}from"@galacticcouncil/xc-core";function Xm(t){return new Bm({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 _m=[Xm(Fe)],Ba=new Pm({chain:Vt,routes:[..._m]});var Pa=[Ba];import{AssetRoute as bn,ChainRoutes as Dm}from"@galacticcouncil/xc-core";import{AssetRoute as vx}from"@galacticcouncil/xc-core";var $t=.0015;var Im=new bn({source:{asset:E,fee:{asset:E,extra:$t}},destination:{chain:T,asset:E,fee:{amount:.002,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Rm=new bn({source:{asset:E,fee:{asset:E,extra:$t}},destination:{chain:Nt,asset:E,fee:{amount:.0012,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lm=[new bn({source:{asset:E,fee:{asset:E,extra:$t}},destination:{chain:h,asset:E,fee:{amount:.04,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new bn({source:{asset:x,fee:{asset:E,extra:$t}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Xa=new Dm({chain:Ge,routes:[Rm,Im,...Lm]});import{AssetRoute as _a,ChainRoutes as Hm}from"@galacticcouncil/xc-core";var As=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});var Vm=[new _a({source:{asset:b,fee:As()},destination:{chain:Ge,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Nm=[new _a({source:{asset:E,fee:As()},destination:{chain:Ge,asset:E,fee:{amount:.0012,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Da=new Hm({chain:Nt,routes:[...Vm,...Nm]});var Ia=[Xa,Da];var Mm=[...la,...Ta,...Sa,...Pa,...Ia],Gm=new Map(Mm.map(t=>[t.chain.key,t]));import{Parachain as Na}from"@galacticcouncil/xc-core";import{Parachain as Om,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 Om)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 Wm=12,Um=1,Km=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||Um,d=i.decimals||Wm,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)||Km,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()},qm=[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 jm,sor as zm,tx as $m}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as Jm}from"@galacticcouncil/common";import{Binary as Ym}from"polkadot-api";import{memoize1 as Qm}from"@thi.ng/memoize";var{PoolType:Fn}=jm,{TradeRouteBuilder:Zm,TradeRouter:eu}=zm,{TxBuilderFactory:tu}=$m,ws=class{chain;client;poolCtx;txBuilder;getCtx=Qm(async e=>{console.log("init swap router",e,"\u2705");let n=new eu(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 tu(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),g=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Ym.toHex(g)}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:Zm.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,Jm);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 su}from"@galacticcouncil/xc-core";import{Asset as nu}from"@galacticcouncil/xc-core";function Sn(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new nu({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 su{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,Gm as routesMap,aa as tags,qm 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 y}from"@galacticcouncil/xc-core";var re=new y({key:"aave",originSymbol:"AAVE"}),Xn=new y({key:"ajun",originSymbol:"AJUN"}),ie=new y({key:"apyusd",originSymbol:"apyUSD"}),D=new y({key:"astr",originSymbol:"ASTR"}),X=new y({key:"bnc",originSymbol:"BNC"}),_n=new y({key:"bsx",originSymbol:"BSX"}),ce=new y({key:"cfg_new",originSymbol:"CFG"}),Dn=new y({key:"cru",originSymbol:"CRU"}),Je=new y({key:"dai",originSymbol:"DAI"}),ot=new y({...Je,key:"dai_wh"}),x=new y({key:"dot",originSymbol:"DOT"}),B=new y({key:"eth",originSymbol:"ETH"}),me=new y({key:"ena",originSymbol:"ENA"}),We=new y({key:"eurc",originSymbol:"EURC"}),Ye=new y({...We,key:"eurc_wh"}),Pe=new y({key:"glmr",originSymbol:"GLMR"}),_t=new y({key:"hdx",originSymbol:"HDX"}),N=new y({key:"ibtc",originSymbol:"IBTC"}),Ee=new y({key:"intr",originSymbol:"INTR"}),Xe=new y({key:"jitoSol",originSymbol:"jitoSOL"}),E=new y({key:"ksm",originSymbol:"KSM"}),ue=new y({key:"ldo",originSymbol:"LDO"}),de=new y({key:"lbtc",originSymbol:"LBTC"}),we=new y({key:"ewt",originSymbol:"EWT"}),le=new y({key:"link",originSymbol:"LINK"}),L=new y({key:"myth",originSymbol:"MYTH"}),He=new y({key:"neuro",originSymbol:"NEURO"}),Te=new y({key:"pen",originSymbol:"PEN"}),pe=new y({key:"paxg",originSymbol:"PAXG"}),_e=new y({key:"prime",originSymbol:"PRIME"}),fe=new y({key:"sky",originSymbol:"SKY"}),Ce=new y({key:"sol",originSymbol:"SOL"}),Fe=new y({key:"sui",originSymbol:"SUI"}),he=new y({key:"susde",originSymbol:"sUSDe"}),Ve=new y({key:"susds",originSymbol:"sUSDS"}),at=new y({...Ve,key:"susds_wh"}),ye=new y({key:"tbtc",originSymbol:"tBTC"}),be=new y({key:"trac",originSymbol:"TRAC"}),Ne=new y({key:"unq",originSymbol:"UNQ"}),b=new y({key:"usdt",originSymbol:"USDT"}),rt=new y({...b,key:"usdt_wh"}),Qe=new y({...b,key:"usdt_eth"}),C=new y({key:"usdc",originSymbol:"USDC"}),it=new y({...C,key:"usdc_wh"}),Ze=new y({...C,key:"usdc_eth"}),U=new y({key:"vastr",originSymbol:"vASTR"}),K=new y({key:"vdot",originSymbol:"vDOT"}),et=new y({key:"weth",originSymbol:"WETH"}),tt=new y({...et,key:"weth_wh"}),Me=new y({key:"wbtc",originSymbol:"WBTC"}),ct=new y({...Me,key:"wbtc_wh"}),ge=new y({key:"wsteth",originSymbol:"wstETH"}),nt=new y({key:"wud",originSymbol:"WUD"}),qa=[re,Xn,ie,D,_n,ce,Dn,X,Je,ot,x,me,We,Ye,B,Pe,_t,N,Ee,E,ue,de,we,Xe,le,L,He,pe,Te,_e,fe,Ce,Fe,he,Ve,at,be,ye,Ne,C,it,Ze,b,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:b,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"}},[b.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:b,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:E,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Zt.Assets,balanceOverrides:{[x.key]:Zt.System,[E.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"]},T=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:D,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,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:{[D.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://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://hk.p.bifrost-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:b,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:D,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:D,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:E,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:b,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=[T,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:E,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:b,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Ln.Assets,balanceOverrides:{[E.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:E,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:b,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 Sc}from"@galacticcouncil/xc-core";import{AssetRoute as ra}from"@galacticcouncil/xc-core";var oa={};Ut(oa,{ContractBuilder:()=>Se,ExtrinsicBuilder:()=>p,ExtrinsicDecorator:()=>xt,FeeAmountBuilder:()=>F,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}))},g={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)],S=[P.SetAppendix([P.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})])];S.push(P.ExchangeAsset({give:Q.Definite([{id:W,fun:xe.Fungible(c)}]),want:[{id:d,fun:xe.Fungible(i)}],maximal:!1}));let v=[{type:"ReserveWithdraw",value:Q.Wild(Ue.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],I=Q.Definite([{id:d,fun:xe.Fungible(i)}]);S.push(P.InitiateTransfer({destination:g,remote_fees:{type:"ReserveWithdraw",value:I},preserve_origin:!0,assets:v,remote_xcm:A}),P.SetTopic(m));let _=a+r+c,G=[{id:W,fun:xe.Fungible(_)},{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:S}),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,g=r.feeBreakdown,A=g.sourceExecutionFee??0n,S=g.dotRemoteFee??0n,v=g.dotToEtherSwapAmount??0n,I=g.etherFeeAmount??0n,G=On({tokenAddress:f,senderPubKey:d,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:A,dotRemoteFee:S,dotToEtherSwapAmount:v,etherFeeAmount:I,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,g=r.feeBreakdown.relayerFee,A=r.feeBreakdown.hydrationDotFee,S=r.fee.amount,v=no.getPubKey(e),I=new TextEncoder().encode(`${i.parachainId}${o}${u}${v}${n}${Date.now()}`),_=Wn(Fi(I)),G=Gn({ethChainId:De,destinationParaId:i.parachainId,tokenAddress:l?Bi:u,beneficiaryHex:v,tokenAmount:n,hydrationDotFee:A,topic:_}),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:v,network:void 0}))})),$e=Wn(st.slice(1));return new eo({abi:Zs.Snowbridge,address:m.getGateway(),args:[w,ve,$e,f,g],value:l?S+n:S,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,g=n;if(f>ao){let A=10n**BigInt(f-ao);g=n-n%A}return new _i({abi:oo.NttManager,address:i.manager,args:[g,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),g=bt(l,s.fee.amount),A="limited_reserve_transfer_assets";return new gt({module:ee,func:A,getTx:S=>{let v=S.getUnsafeApi().tx[ee][A];return n.key===s.fee.key?v({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)?v({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[g,f]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):v({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[f,g]},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]},g="limited_teleport_assets";return new gt({module:ee,func:g,getTx:A=>A.getUnsafeApi().tx[ee][g]({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]},g="reserve_transfer_assets";return new gt({module:ee,func:g,getTx:A=>A.getUnsafeApi().tx[ee][g]({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]},g="transfer_assets";return new gt({module:ee,func:g,getTx:A=>A.getUnsafeApi().tx[ee][g]({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 g=O(r),A=i||u.usesCexForwarding?Gt(d,r,u):e,S=O(A),{transferType:v}=t,I=M(V(d,n),m),_=M(V(d,f),m),G=bt(I,s),J=bt(_,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,v,I),Bn={type:m,value:w?I:_},Pn=os(m,v,_),Xt;if(Do(I)&&o.chain.isEvmChain())Xt=cn(m,S,g,I,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,S,u,ve.mode,Ua,Wt)}else Xt=Ro(m,S,$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:g=>g.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),g=O(o),A=M(V(u,a),m),{fee:S}=i,v=un.toBigInt(e.fee,S.decimals),I=s>S.amount?s-(S.amount+v):s;return new gt({module:ee,func:t,getTx:_=>_.getUnsafeApi().tx[ee][t]({dest:je(m,d,u),message:Vo(m,f,A,I,v,g)})})}})}};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:g=>g.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",g=!m&&u!==void 0&&u+zo<=o,A=null;if(r!==null)if(m)A=0n;else if(g)A=r;else{let S=l??a,v=a>S?a-S:0n;A=r>v?r-v: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:g}}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 g=l===0?a:m.get(l)??0n,A=$o(l,f,c.get(l),i.get(l),o,g);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 g=f>d?d:f,A=c*g/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,g]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,nn),a.calculateDestinationFeeV5(d,x)]),A=q(u,33n),S=q(l,33n),v=q(f,33n),_=q(g,33n)+S,G=A,J=await a.quoteEtherForDot(i,_),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+v),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(),g=Ko+Wo+Oo+Uo,A=f*g,S=q(A,10n),v=d+q(u,33n)+q(l,33n),I=q(await c.quoteDotForExactEther(i,S),20n),_=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 _.calculateDestinationFeeV5(G,x),33n);return{amount:v+I+J,breakdown:{dotRemoteFee:v,dotToEtherSwapAmount:I,etherFeeAmount:S,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),g=es(e,a),A=Fo(e,r,a),[S,v]=await Promise.all([l.calculateDestinationFee(g,e),f.calculateDestinationFee(A,e)]),I=v+S,_=q(I,20n),G=_-I;return{amount:_,breakdown:{reserveFee:v,destinationFee:S,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 F(){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)),g=m.getCoreBridge(),A=i.manager,S=i.transceiver.wormhole,v=i.token,[I,_,G,J]=await Promise.all([ln.getWormholePackageId(u,g),ln.getCurrentPackageId(u,A),ln.getCurrentPackageId(u,S),ln.getCoinMetadataId(u,v)]),w=new lc,[ve]=w.splitCoins(w.gas,[w.pure.u64(n)]),[st]=w.moveCall({target:`${_}::upgrades::new_version_gated`,arguments:[]}),[$e,Yt]=w.moveCall({target:`${_}::ntt::prepare_transfer`,typeArguments:[v],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:`${_}::state::get_next_sequence`,typeArguments:[v],arguments:[w.object(A)]});w.moveCall({target:`${_}::ntt::transfer_tx_sender`,typeArguments:[v],arguments:[w.object(A),st,w.object(J),$e,w.object(ds)]});let[Pn]=w.moveCall({target:`${_}::state::create_transceiver_message`,typeArguments:[`${G}::wormhole_transceiver::TransceiverAuth`,v],arguments:[w.object(A),Bn,w.object(ds)]}),[Xt]=w.moveCall({target:`${G}::wormhole_transceiver::release_outbound`,typeArguments:[`${_}::auth::ManagerAuth`],arguments:[w.object(S),Pn]}),[Qt]=w.splitCoins(w.gas,[w.pure.u64(0n)]);w.moveCall({target:`${I}::publish_message::publish_message`,arguments:[w.object(g),Qt,Xt,w.object(ds)]});let[Wt]=w.moveCall({target:"0x2::coin::from_balance",typeArguments:[v],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"@wormhole-foundation/sdk-definitions-ntt";async function Ec(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 Tc(t,e,n){let s=await Ec(t,e);return{instructions:"message"in e?wc.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions,signers:n,lookupTables:s}}var Fc=()=>({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{SolanaNtt:f}=await import("@wormhole-foundation/sdk-solana-ntt"),g=new f("Mainnet","Solana",c.connection,{coreBridge:d.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),A=c.getBalanceType(s)===gc.Native,S=Ac.generate(),v=[];for await(let G of g.transfer(new vc(o),n,{chain:Cc(u.getWormholeId()),address:new kc(u.normalizeAddress(l))},{queue:!1,automatic:!1,wrapNative:A},S)){let{transaction:J,signers:w}=G.transaction;v.push(await Tc(c.connection,J,w??[]))}let I=A?BigInt(await xc(c.connection)):0n,_=v[v.length-1];return new bc({instructions:_.instructions,signers:_.signers,lookupTables:_.lookupTables,prerequisites:v.slice(0,-1),rentReserve:I,func:"transfer",module:"NttManager"})}}),na=()=>({transfer:Fc});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:F().Basejump().quoteFee(),asset:t}},contract:Se().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Bc=[ca(We,Ye)],Pc=[ia(We,Ye)],ma=new Sc({chain:Dt,routes:[...Pc,...Bc]});import{AssetRoute as ua,ChainRoutes as Xc}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:F().Snowbridge().calculateInboundFee({hub:T}),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:F().Snowbridge().calculateInboundFeeV1({hub:T}),asset:B}},contract:Se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var _c=[wt(Je,ot),wt(Ve,at),wt(C,it),wt(b,rt),wt(Me,ct),wt(et,tt),wt(B,tt)],Dc=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:F().Snowbridge().calculateInboundFee({hub:T}),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(b,Qe)],Ic=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:F().Snowbridge().calculateInboundFeeV1({hub:T}),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(b,Qe)],da=new Xc({chain:k,routes:[..._c,...Dc,...Ic]});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,Rc=t=>{let{source:e}=t;return!!e.feeSwap},Lc=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},pa=p().assetConversion().swapTokensForExactTokens({slippage:30});function Hc(t,e,n){return new hs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:b}},extrinsic:xt(Lc,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(Rc,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 Hc(t,h,.02)}var Vc=[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:E,fee:{asset:x,extra:St}},destination:{chain:h,asset:E,fee:{amount:1e-4,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),zt(b,h,.02),zt(C,h,.02),fn(nt)],Nc=[new hn({source:{asset:E,fee:{asset:x,extra:St}},destination:{chain:Ge,asset:E,fee:{amount:.001,asset:E}},extrinsic:p().polkadotXcm().transferAssets()})],Mc=[zt(b,H,.03),zt(C,H,.03)],Gc=[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(b,h,.02),pn(C,h,.02),pn(x,h,.001)]}),ya=new fa({chain:T,routes:[...Vc,...Nc,...Mc,...Gc]});import{AssetRoute as Ct,ChainRoutes as Oc}from"@galacticcouncil/xc-core";var Wc=[new Ct({source:{asset:D},destination:{chain:h,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:p().polkadotXcm().reserveTransferAssets()}),new Ct({source:{asset:X,fee:{asset:D}},destination:{chain:h,asset:X,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:H}),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:N,fee:{asset:D}},destination:{chain:h,asset:N,fee:{amount:2e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:Ee,fee:{asset:D}},destination:{chain:h,asset:Ee,fee:{amount:.01,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:K,fee:{asset:D}},destination:{chain:h,asset:K,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:H}),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:U,fee:{asset:D}},destination:{chain:h,asset:U,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:H}),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:b,fee:{asset:D}},destination:{chain:h,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:C,fee:{asset:D}},destination:{chain:h,asset:C,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ba=new Oc({chain:Y,routes:[...Wc]});import{AssetRoute as ze,ChainRoutes as Uc}from"@galacticcouncil/xc-core";var Kc=[new ze({source:{asset:X},destination:{chain:h,asset:X,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:K,fee:{asset:X}},destination:{chain:h,asset:K,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:U,fee:{asset:X}},destination:{chain:h,asset:U,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,fee:{asset:X}},destination:{chain:h,asset:x,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ze({source:{asset:D,fee:{asset:X}},destination:{chain:h,asset:D,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:Y}),asset:D}},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:b,fee:{asset:X}},destination:{chain:h,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:h,asset:C,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],qc=[new ze({source:{asset:b,fee:{asset:X}},destination:{chain:T,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:T,asset:C,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ga=new Uc({chain:H,routes:[...Kc,...qc]});import{AssetRoute as Pt,ChainRoutes as zc}from"@galacticcouncil/xc-core";var oe=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as Bt}from"@galacticcouncil/xc-core";var jc=.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:F().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:F().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function yn(t){return new Bt({source:{asset:t,fee:oe()},destination:{chain:T,asset:t,fee:{amount:jc,asset:b}},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:F().Snowbridge().calculateOutboundFee({hub:T}),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:F().Snowbridge().calculateOutboundFeeV1({hub:T}),asset:x}},extrinsic:xt(ys,bs).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var $c=[kt(x,T),kt(E,T),kt(b,T),kt(C,T),yn(nt)],Jc=[gs(E,.05,.005),gs(x,.2,.02)],Yc=[Ae(D,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(b,Y,T),Ae(C,Y,T)],Qc=[Ae(X,H),Ae(K,H),Ae(U,H),Ae(D,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(b,H,T),Ae(C,H,T),new Pt({source:{asset:x,fee:oe()},destination:{chain:H,asset:x,fee:{amount:F().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Zc=[new Pt({source:{asset:L,fee:oe()},destination:{chain:ut,asset:L,fee:{amount:2.5,asset:L}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],em=[Ae(Ne,Lt)],tm=[new Pt({source:{asset:we,fee:oe()},destination:{chain:Ht,asset:we,fee:{amount:.02,asset:we}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],nm=[new Pt({source:{asset:Te,fee:oe()},destination:{chain:Rt,asset:Te,fee:{amount:1.1,asset:Te}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],sm=[Ae(He,It)],om=[Le(ot,Je,k),Le(at,Ve,k),Le(it,C,k),Le(rt,b,k),Le(ct,Me,k),Le(tt,B,k)],am=[Le(Ye,We,Dt)],rm=[Le(Ce,Ce,dt),Le(Xe,Xe,dt),Le(_e,_e,dt)],im=[Le(Fe,Fe,Vt)],cm=[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,b,k)],mm=[$(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,b,k)],um=[kt(x,mt),kt(b,mt),kt(C,mt)],xa=new zc({chain:h,routes:[...$c,...Yc,...Qc,...um,...am,...om,...cm,...rm,...im,...mm,...tm,...Jc,...Zc,...sm,...nm,...em]});import{AssetRoute as Aa,ChainRoutes as dm}from"@galacticcouncil/xc-core";var lm=[new Aa({source:{asset:L},destination:{chain:h,asset:L,fee:{amount:.01,asset:L}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],pm=[new Aa({source:{asset:L},destination:{chain:T,asset:L,fee:{amount:.1,asset:L}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],wa=new dm({chain:ut,routes:[...lm,...pm]});import{AssetRoute as fm,ChainRoutes as hm}from"@galacticcouncil/xc-core";var ym=[new fm({source:{asset:Ne},destination:{chain:h,asset:Ne,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Ca=new hm({chain:Lt,routes:[...ym]});import{AssetRoute as bm,ChainRoutes as gm}from"@galacticcouncil/xc-core";var xm=[new bm({source:{asset:Te},destination:{chain:h,asset:Te,fee:{amount:.2,asset:Te}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],ka=new gm({chain:Rt,routes:[...xm]});import{AssetRoute as Am,ChainRoutes as wm}from"@galacticcouncil/xc-core";var Cm=[new Am({source:{asset:we,fee:{asset:we,extra:.030555}},destination:{chain:h,asset:we,fee:{amount:.03,asset:we}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],va=new wm({chain:Ht,routes:[...Cm]});import{AssetRoute as km,ChainRoutes as vm}from"@galacticcouncil/xc-core";var Em=[new km({source:{asset:He},destination:{chain:h,asset:He,fee:{amount:.205,asset:He}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],Ea=new vm({chain:It,routes:[...Em]});var Ta=[ya,ha,ba,ga,xa,wa,Ea,Ca,ka,va];import{AssetRoute as Tm,ChainRoutes as Fm}from"@galacticcouncil/xc-core";function xs(t){return new Tm({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 Sm=[xs(Ce),xs(Xe),xs(_e)],Fa=new Fm({chain:dt,routes:[...Sm]});var Sa=[Fa];import{AssetRoute as Bm,ChainRoutes as Pm}from"@galacticcouncil/xc-core";function Xm(t){return new Bm({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 _m=[Xm(Fe)],Ba=new Pm({chain:Vt,routes:[..._m]});var Pa=[Ba];import{AssetRoute as bn,ChainRoutes as Dm}from"@galacticcouncil/xc-core";import{AssetRoute as vx}from"@galacticcouncil/xc-core";var $t=.0015;var Im=new bn({source:{asset:E,fee:{asset:E,extra:$t}},destination:{chain:T,asset:E,fee:{amount:.002,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Rm=new bn({source:{asset:E,fee:{asset:E,extra:$t}},destination:{chain:Nt,asset:E,fee:{amount:.0012,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lm=[new bn({source:{asset:E,fee:{asset:E,extra:$t}},destination:{chain:h,asset:E,fee:{amount:.04,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new bn({source:{asset:x,fee:{asset:E,extra:$t}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Xa=new Dm({chain:Ge,routes:[Rm,Im,...Lm]});import{AssetRoute as _a,ChainRoutes as Hm}from"@galacticcouncil/xc-core";var As=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});var Vm=[new _a({source:{asset:b,fee:As()},destination:{chain:Ge,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Nm=[new _a({source:{asset:E,fee:As()},destination:{chain:Ge,asset:E,fee:{amount:.0012,asset:E}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Da=new Hm({chain:Nt,routes:[...Vm,...Nm]});var Ia=[Xa,Da];var Mm=[...la,...Ta,...Sa,...Pa,...Ia],Gm=new Map(Mm.map(t=>[t.chain.key,t]));import{Parachain as Na}from"@galacticcouncil/xc-core";import{Parachain as Om,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 Om)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 Wm=12,Um=1,Km=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||Um,d=i.decimals||Wm,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)||Km,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()},qm=[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 jm,sor as zm,tx as $m}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as Jm}from"@galacticcouncil/common";import{Binary as Ym}from"polkadot-api";import{memoize1 as Qm}from"@thi.ng/memoize";var{PoolType:Fn}=jm,{TradeRouteBuilder:Zm,TradeRouter:eu}=zm,{TxBuilderFactory:tu}=$m,ws=class{chain;client;poolCtx;txBuilder;getCtx=Qm(async e=>{console.log("init swap router",e,"\u2705");let n=new eu(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 tu(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),g=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Ym.toHex(g)}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:Zm.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,Jm);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 su}from"@galacticcouncil/xc-core";import{Asset as nu}from"@galacticcouncil/xc-core";function Sn(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new nu({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 su{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,Gm as routesMap,aa as tags,qm as validations};
|