@galacticcouncil/xc-cfg 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.cjs +1 -1
- package/build/index.mjs +1 -1
- package/package.json +3 -7
package/build/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Ka=Object.defineProperty;var Ut=(t,e)=>{for(var n in e)Ka(t,n,{get:e[n],enumerable:!0})};import{Asset as b}from"@galacticcouncil/xc-core";var re=new b({key:"aave",originSymbol:"AAVE"}),Xn=new b({key:"ajun",originSymbol:"AJUN"}),ie=new b({key:"apyusd",originSymbol:"apyUSD"}),I=new b({key:"astr",originSymbol:"ASTR"}),X=new b({key:"bnc",originSymbol:"BNC"}),_n=new b({key:"bsx",originSymbol:"BSX"}),ce=new b({key:"cfg_new",originSymbol:"CFG"}),Dn=new b({key:"cru",originSymbol:"CRU"}),Je=new b({key:"dai",originSymbol:"DAI"}),ot=new b({...Je,key:"dai_wh"}),x=new b({key:"dot",originSymbol:"DOT"}),B=new b({key:"eth",originSymbol:"ETH"}),me=new b({key:"ena",originSymbol:"ENA"}),We=new b({key:"eurc",originSymbol:"EURC"}),Ye=new b({...We,key:"eurc_wh"}),Pe=new b({key:"glmr",originSymbol:"GLMR"}),_t=new b({key:"hdx",originSymbol:"HDX"}),N=new b({key:"ibtc",originSymbol:"IBTC"}),Ee=new b({key:"intr",originSymbol:"INTR"}),Xe=new b({key:"jitoSol",originSymbol:"jitoSOL"}),v=new b({key:"ksm",originSymbol:"KSM"}),ue=new b({key:"ldo",originSymbol:"LDO"}),de=new b({key:"lbtc",originSymbol:"LBTC"}),we=new b({key:"ewt",originSymbol:"EWT"}),le=new b({key:"link",originSymbol:"LINK"}),L=new b({key:"myth",originSymbol:"MYTH"}),He=new b({key:"neuro",originSymbol:"NEURO"}),Te=new b({key:"pen",originSymbol:"PEN"}),pe=new b({key:"paxg",originSymbol:"PAXG"}),_e=new b({key:"prime",originSymbol:"PRIME"}),fe=new b({key:"sky",originSymbol:"SKY"}),Ce=new b({key:"sol",originSymbol:"SOL"}),Fe=new b({key:"sui",originSymbol:"SUI"}),he=new b({key:"susde",originSymbol:"sUSDe"}),Ve=new b({key:"susds",originSymbol:"sUSDS"}),at=new b({...Ve,key:"susds_wh"}),ye=new b({key:"tbtc",originSymbol:"tBTC"}),be=new b({key:"trac",originSymbol:"TRAC"}),Ne=new b({key:"unq",originSymbol:"UNQ"}),g=new b({key:"usdt",originSymbol:"USDT"}),rt=new b({...g,key:"usdt_wh"}),Qe=new b({...g,key:"usdt_eth"}),C=new b({key:"usdc",originSymbol:"USDC"}),it=new b({...C,key:"usdc_wh"}),Ze=new b({...C,key:"usdc_eth"}),U=new b({key:"vastr",originSymbol:"vASTR"}),K=new b({key:"vdot",originSymbol:"vDOT"}),et=new b({key:"weth",originSymbol:"WETH"}),tt=new b({...et,key:"weth_wh"}),Me=new b({key:"wbtc",originSymbol:"WBTC"}),ct=new b({...Me,key:"wbtc_wh"}),ge=new b({key:"wsteth",originSymbol:"wstETH"}),nt=new b({key:"wud",originSymbol:"WUD"}),qa=[re,Xn,ie,I,_n,ce,Dn,X,Je,ot,x,me,We,Ye,B,Pe,_t,N,Ee,v,ue,de,we,Xe,le,L,He,pe,Te,_e,fe,Ce,Fe,he,Ve,at,be,ye,Ne,C,it,Ze,g,rt,Qe,U,K,Me,ct,et,tt,ge,nt],ja=new Map(qa.map(t=>[t.key,t]));import{ChainEcosystem as za,EvmChain as $a,EvmBalanceType as Ja}from"@galacticcouncil/xc-core";import{base as Ya}from"viem/chains";var Dt=new $a({id:8453,key:"base",name:"Base",assetsData:[{asset:B,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:We,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:C,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Ja.Erc20,ecosystem:za.Ethereum,evmChain:Ya,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[We.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});import{ChainEcosystem as Qa,EvmChain as Za,EvmBalanceType as ks}from"@galacticcouncil/xc-core";import{mainnet as er}from"viem/chains";var k=new Za({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:B,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:re,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ie,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:ce,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:et,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:Je,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:me,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:he,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ve,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:ye,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Me,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:de,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:C,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:g,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ue,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:le,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:pe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:fe,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:be,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:ks.Erc20,balanceOverrides:{[B.key]:ks.Native},ecosystem:Qa.Ethereum,evmChain:er,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[Je.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[Ve.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[C.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[g.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[Me.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[et.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[B.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var vs=[Dt,k];import{ChainEcosystem as tr,Parachain as Es,SubstrateBalanceType as Zt,SubstrateMinType as nr}from"@galacticcouncil/xc-core";var Ts={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:nt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:L,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:v,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Zt.Assets,balanceOverrides:{[x.key]:Zt.System,[v.key]:Zt.ForeignAssets,[L.key]:Zt.ForeignAssets},min:nr.Assets,ecosystem:tr.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},F=new Es({...Ts,key:"assethub",name:"AssetHub Polkadot"}),mt=new Es({...Ts,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as sr,Parachain as or,SubstrateBalanceType as Fs}from"@galacticcouncil/xc-core";var Y=new or({assetsData:[{asset:I,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:X,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ee,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Fs.Assets,balanceOverrides:{[I.key]:Fs.System},ecosystem:sr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as ar,Parachain as rr,SubstrateBalanceType as Ss}from"@galacticcouncil/xc-core";var ir=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],H=new rr({assetsData:[{asset:X,id:{Native:X.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:C,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:I,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:Pe,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Ss.Tokens,balanceOverrides:{[X.key]:Ss.System},ecosystem:ar.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:ir});import{ChainEcosystem as dr,EvmParachain as lr,SubstrateBalanceType as Ps}from"@galacticcouncil/xc-core";import{defineChain as pr}from"viem";import{h160 as cr}from"@galacticcouncil/common";import{AccountId as mr}from"polkadot-api";var{isEvmAccount:ur,H160:Bs}=cr,en=class{async toH160(e,n){if(ur(e))return Bs.fromAccount(e);let s=Bs.fromSS58(e);if(n&&await this.isBound(n,s,e))return s;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,n,s){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(n);if(!a)return!1;let r=mr().enc(s),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var fr=new en,In=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Rn=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],hr=pr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:In,webSocket:Rn},default:{http:In,webSocket:Rn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new lr({assetsData:[{asset:_t,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:re,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Xn,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:I,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:X,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ce,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Dn,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ot,decimals:18,id:18,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f"}}]}}},{asset:B,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:ie,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:me,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:Pe,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:N,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ee,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Xe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0xfcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd"}}]}}},{asset:_e,decimals:6,id:43,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x26759f460ee5f743ed66d27c8f2a5623bf39d53ed575955320661e6e13e0e3da"}}]}}},{asset:we,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:ue,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:v,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:de,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:le,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:pe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:L,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:He,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Te,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:fe,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Ce,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001"}}]}}},{asset:Fe,decimals:9,id:1000753,min:.003,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:21},{GeneralKey:{length:32,data:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}]}}},{asset:he,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ve,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:at,decimals:18,id:1000745,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:ye,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:be,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ne,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:C,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:it,decimals:6,id:21,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:Ye,decimals:6,id:44,min:.014,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:30},{GeneralKey:{length:32,data:"0x00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42"}}]}}},{asset:Ze,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:g,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:rt,decimals:6,id:23,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Qe,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:U,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Me,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ct,decimals:8,id:19,min:34e-8,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:et,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:tt,decimals:18,id:20,min:54e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:ge,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:nt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Ps.Tokens,balanceOverrides:{[_t.key]:Ps.System},ecosystem:dr.Polkadot,evmChain:hr,evmResolver:fr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[ot.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Ye.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Xe.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[_e.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Ce.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Fe.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[at.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[it.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[rt.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[ct.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[tt.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Rn,rpcs:In});import{ChainEcosystem as yr,Parachain as br,SubstrateBalanceType as gr}from"@galacticcouncil/xc-core";var ut=new br({assetsData:[{asset:L,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:gr.System,ecosystem:yr.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});import{ChainEcosystem as xr,Parachain as Ar,SubstrateBalanceType as wr}from"@galacticcouncil/xc-core";var It=new Ar({assetsData:[{asset:He,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:wr.System,ecosystem:xr.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as Cr,Parachain as kr,XcmVersion as vr,SubstrateBalanceType as Er}from"@galacticcouncil/xc-core";var Rt=new kr({assetsData:[{asset:Te,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Er.System,ecosystem:Cr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:vr.v3});import{ChainEcosystem as Tr,Parachain as Fr,SubstrateBalanceType as Sr}from"@galacticcouncil/xc-core";var Br={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:Sr.System,ecosystem:Tr.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},Xs=new Fr({...Br,key:"polkadot"});import{ChainEcosystem as Pr,Parachain as Xr,SubstrateBalanceType as _r}from"@galacticcouncil/xc-core";var Lt=new Xr({assetsData:[{asset:Ne,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:_r.System,ecosystem:Pr.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as Dr,Parachain as Ir,XcmVersion as Rr,SubstrateBalanceType as Lr}from"@galacticcouncil/xc-core";var Ht=new Ir({assetsData:[{asset:we,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Lr.System,ecosystem:Dr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Rr.v3});var _s=[F,mt,Y,H,h,It,ut,Rt,Xs,Lt,Ht];import{ChainEcosystem as Hr,SolanaChain as Vr,SolanaBalanceType as Ds}from"@galacticcouncil/xc-core";var dt=new Vr({id:101,key:"solana",name:"Solana",assetsData:[{asset:Ce,decimals:9},{asset:Xe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:_e,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Ds.Token,balanceOverrides:{[Ce.key]:Ds.Native},ecosystem:Hr.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",ntt:{[Ce.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Xe.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[_e.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Is=[dt];import{ChainEcosystem as Nr,SuiChain as Mr,SuiBalanceType as Gr}from"@galacticcouncil/xc-core";var Vt=new Mr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Fe,decimals:9}],balance:Gr.Native,ecosystem:Nr.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[Fe.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var Rs=[Vt];import{ChainEcosystem as Or,Parachain as Wr,SubstrateBalanceType as Ls,SubstrateMinType as Ur}from"@galacticcouncil/xc-core";var Ge=new Wr({assetsData:[{asset:v,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:g,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Ls.Assets,balanceOverrides:{[v.key]:Ls.System},min:Ur.Assets,ecosystem:Or.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as Kr,Parachain as qr,SubstrateBalanceType as jr}from"@galacticcouncil/xc-core";var Nt=new qr({assetsData:[{asset:_n,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:v,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:jr.Tokens,ecosystem:Kr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Hs=[Ge,Nt];var zr=[...vs,..._s,...Is,...Rs,...Hs],$r=new Map(zr.map(t=>[t.key,t]));import{ChainRoutes as Bc}from"@galacticcouncil/xc-core";import{AssetRoute as ra}from"@galacticcouncil/xc-core";var oa={};Ut(oa,{ContractBuilder:()=>Se,ExtrinsicBuilder:()=>p,ExtrinsicDecorator:()=>xt,FeeAmountBuilder:()=>S,FeeAssetBuilder:()=>jt,MoveBuilder:()=>ds,ProgramBuilder:()=>ls,XcmTransferType:()=>Be,XcmVersion:()=>qe});import{Abi as Vs,ContractConfig as Jr,Precompile as Yr}from"@galacticcouncil/xc-core";import{encodeFunctionData as Qr}from"viem";var Zr=t=>({build:async e=>{let n=await Promise.all(t.map(r=>r.build(e))),s=n.map(r=>r.address),o=[0,0],a=n.map(r=>Qr({abi:Vs[r.module],functionName:r.func,args:r.args}));return new Jr({abi:Vs.Batch,address:Yr.Batch,args:[s,o,a,[]],func:"batchAll",module:"Batch"})}}),Ns=()=>({batchAll:Zr});import{Abi as ei,ContractConfig as ti,Wormhole as ni}from"@galacticcouncil/xc-core";function q(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function vt(t){return typeof t=="object"?Object.values(t)[0]:t}function Ms(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:o,transact:a}=e,r=a?a.chain:o.chain,c=ni.fromChain(r),i=r.getAssetId(s);return new ti({abi:ei.Erc20,address:vt(i).toString(),args:[t(c),n],func:"approve",module:"Erc20"})}})}}import{Abi as si,Basejump as oi,ContractConfig as ai}from"@galacticcouncil/xc-core";import{h160 as ri}from"@galacticcouncil/common";import{AccountId as ii}from"polkadot-api";import{toHex as ci}from"@polkadot-api/utils";var{H160:mi,isEvmAddress:ui}=ri;function di(t){let e=ui(t)?mi.toAccount(t):t;return ci(ii().enc(e))}var li=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o}=t,a=o.chain,r=oi.fromChain(a),c=a.getAssetId(s);return new ai({abi:si.Basejump,address:r.getAddress(),args:[vt(c),n,di(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Gs=()=>({bridgeViaWormhole:li});import{addr as pi,Abi as Os,ContractConfig as Ws,Precompile as Us}from"@galacticcouncil/xc-core";import{big as fi}from"@galacticcouncil/common";var{Ss58Addr:Ks}=pi;function hi(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Ln(t,e){let n=t.getAssetId(e);return typeof n=="string"?hi(n):n}function qs(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Ln(o.chain,n);return new Ws({abi:Os.PolkadotXcm,address:Us.PolkadotXcm,args:[s.chain.parachainId,Ks.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Ln(o.chain,n),r=Ln(o.chain,o.destinationFeeBalance),c=fi.toBigInt(s.fee.amount,s.fee.decimals);return new Ws({abi:Os.PolkadotXcm,address:Us.PolkadotXcm,args:[s.chain.parachainId,Ks.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Ci,Abi as Zs,ContractConfig as eo,Snowbridge as to}from"@galacticcouncil/xc-core";import{XcmV5Junctions as ki,XcmV5Junction as vi,XcmVersionedXcm as Ei,XcmVersionedLocation as Ti}from"@galacticcouncil/descriptors";import{Blake2256 as Fi}from"@polkadot-api/substrate-bindings";import{toHex as On}from"@polkadot-api/utils";import{encodeAbiParameters as Si}from"viem";import{codec as yi}from"@galacticcouncil/xc-core";var tn=null;async function js(){if(tn)return tn;let t=await yi.getHubCodecs();return tn={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},tn}import{multiloc as gi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as xe,XcmV5AssetFilter as Q,XcmV5Instruction as P,XcmV5Junctions as pt,XcmV5Junction as Ke,XcmV5NetworkId as Hn,XcmV5WildAsset as Ue,XcmVersionedXcm as xi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Ai}from"@polkadot-api/substrate-bindings";import{toHex as wi}from"@polkadot-api/utils";import{XcmV3Junctions as bi}from"@galacticcouncil/descriptors";var j=340282366920938463463374607431768211455n,Oe="0x0000000000000000000000000000000000000000000000000000000000000000",W={parents:1,interior:bi.Here()},zs=0,lt=1e3,nn=1002,De=1,Et="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",$s="0x0000000000000000000000000000000000000000000000000000000000000000",Js="0x0000000000000000000000000000000000000000";var Vn="0x0000000000000000000000000000000000000000",Mt=t=>({parents:2,interior:pt.X1(Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(t)})))}),Nn=(t,e)=>({parents:2,interior:pt.X2([Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(t)})),Ke.AccountKey20({key:e,network:void 0})])});function Ys(t,e){let n=Mt(t),s=Nn(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[P.ReserveAssetDeposited([{id:n,fun:xe.Fungible(o)},{id:s,fun:xe.Fungible(o)}]),P.ExchangeAsset({give:Q.Wild(Ue.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:W,fun:xe.Fungible(a)}],maximal:!1}),P.PayFees({asset:{id:W,fun:xe.Fungible(a)}})],c=Mn({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function Mn(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Mt(e),m=s===Vn?i:Nn(e,s),u=o.length===42&&o.startsWith("0x")?Ke.AccountKey20({key:o,network:void 0}):Ke.AccountId32({id:o,network:void 0}),l={parents:0,interior:pt.X1(u)};return[P.SetAppendix([P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})]),P.ExchangeAsset({give:Q.Wild(Ue.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:W,fun:xe.Fungible(r)}],maximal:!1}),P.InitiateTransfer({destination:{parents:1,interior:pt.X1(Ke.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:Q.Definite([{id:W,fun:xe.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:Q.Definite([{id:m,fun:xe.Fungible(a)}])}],remote_xcm:[P.DepositAsset({assets:Q.Wild(Ue.AllCounted(3)),beneficiary:l}),P.SetTopic(c)]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l}),P.SetTopic(c)]}function Gn(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,d=Mt(De),u=e===Vn?d:Nn(De,e),l={parents:0,interior:pt.X1(Ke.AccountId32({id:n,network:void 0}))},f={parents:0,interior:pt.X1(Ke.AccountKey20({key:s,network:void 0}))},y={parents:2,interior:pt.X1(Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(De)})))},A=[P.DepositAsset({assets:Q.Wild(Ue.AllCounted(3)),beneficiary:f}),P.SetTopic(m)],E=[P.SetAppendix([P.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})])];E.push(P.ExchangeAsset({give:Q.Definite([{id:W,fun:xe.Fungible(c)}]),want:[{id:d,fun:xe.Fungible(i)}],maximal:!1}));let T=[{type:"ReserveWithdraw",value:Q.Wild(Ue.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],_=Q.Definite([{id:d,fun:xe.Fungible(i)}]);E.push(P.InitiateTransfer({destination:y,remote_fees:{type:"ReserveWithdraw",value:_},preserve_origin:!0,assets:T,remote_xcm:A}),P.SetTopic(m));let D=a+r+c,G=[{id:W,fun:xe.Fungible(D)},{id:u,fun:xe.Fungible(o)}],J=[{id:W,fun:xe.Fungible(a)}],w={type:"ReserveWithdraw",value:Q.Wild(Ue.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},ve=[{type:"ReserveWithdraw",value:Q.Definite([{id:W,fun:xe.Fungible(c)}])},w];return[P.WithdrawAsset(G),P.PayFees({asset:J[0]}),P.SetAppendix([P.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})]),P.InitiateTransfer({destination:{parents:1,interior:pt.X1(Ke.Parachain(lt))},remote_fees:{type:"ReserveWithdraw",value:Q.Definite([{id:W,fun:xe.Fungible(r)}])},preserve_origin:!0,assets:ve,remote_xcm:E}),P.SetTopic(m)]}function Qs(t){let{address:e,amount:n,asset:s,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=Ai(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let d=wi(m.publicKey),u=i.getAssetXcmLocation(s),l=u?gi.findNestedKey(u,"key"):void 0,f=l?l.key:Vn,y=r.feeBreakdown,A=y.sourceExecutionFee??0n,E=y.dotRemoteFee??0n,T=y.dotToEtherSwapAmount??0n,_=y.etherFeeAmount??0n,G=Gn({tokenAddress:f,senderPubKey:d,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:A,dotRemoteFee:E,dotToEtherSwapAmount:T,etherFeeAmount:_,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return xi.V5(G)}var{Ss58Addr:no}=Ci,Bi="0x0000000000000000000000000000000000000000",Pi=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=to.fromChain(c),d=c.getAssetId(s),u=vt(d),l=s.originSymbol==="ETH",f=r.feeBreakdown.executionFee,y=r.feeBreakdown.relayerFee,A=r.feeBreakdown.hydrationDotFee,E=r.fee.amount,T=no.getPubKey(e),_=new TextEncoder().encode(`${i.parachainId}${o}${u}${T}${n}${Date.now()}`),D=On(Fi(_)),G=Mn({ethChainId:De,destinationParaId:i.parachainId,tokenAddress:l?Bi:u,beneficiaryHex:T,tokenAmount:n,hydrationDotFee:A,topic:D}),J=await js(),w=On(J.message.enc(Ei.V5(G))),ve=[];l||ve.push(Si([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,n]));let st=J.location.enc(Ti.V5({parents:0,interior:ki.X1(vi.AccountId32({id:T,network:void 0}))})),$e=On(st.slice(1));return new eo({abi:Zs.Snowbridge,address:m.getGateway(),args:[w,ve,$e,f,y],value:l?E+n:E,func:"v2_sendMessage",module:"Snowbridge"})}}),Xi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=to.fromChain(r),m=r.getAssetId(s),d=vt(m),u=s.originSymbol==="ETH",l=a.feeBreakdown.bridgeFeeInDot,f=a.fee.amount;return new eo({abi:Zs.Snowbridge,address:i.getGateway(),args:[d,c.parachainId,[1,no.getPubKey(e)],l,n],value:u?f+n:f,func:"sendToken",module:"Snowbridge"})}}),so=()=>({v2SendMessage:Pi,sendToken:Xi});import{Abi as oo,ContractConfig as _i,EvmBalanceType as Di,EvmParachain as Ii,Ntt as Ri,Wormhole as Li}from"@galacticcouncil/xc-core";var Hi="0x00",ao=8,Vi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Ri.fromChain(r,s),m=Li.fromChain(c),d=e;c instanceof Ii&&(d=await c.getDerivatedAddress(e));let u=r,l=await u.evmClient.getProvider().readContract({abi:oo.NttManager,address:i.manager,args:[m.getWormholeId(),Hi],functionName:"quoteDeliveryPrice"}),f=u.getAssetDecimals(s)??0,y=n;if(f>ao){let A=10n**BigInt(f-ao);y=n-n%A}return new _i({abi:oo.NttManager,address:i.manager,args:[y,m.getWormholeId(),m.normalizeAddress(d)],token:i.token,wrapNative:u.getBalanceType(s)===Di.Native,value:l[1],func:"transfer",module:"NttManager"})}}),ro=()=>({transfer:Vi});function io(){return{Ntt:ro}}function Se(){return{Batch:Ns,Erc20:Ms,Basejump:Gs,PolkadotXcm:qs,Snowbridge:so,Wormhole:io}}import{encodeLocation as co}from"@galacticcouncil/common";import{ExtrinsicConfig as Ni}from"@galacticcouncil/xc-core";var mo="AssetConversion",Mi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:o}=s,a=s.destinationFeeSwap||s.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,m=co(i.getAssetXcmLocation(r)),d=co(i.getAssetXcmLocation(c)),u=r.amount+r.amount*BigInt(t.slippage)/100n,l=c.amount;return new Ni({module:mo,func:e,getTx:f=>f.getUnsafeApi().tx[mo][e]({path:[m,d],amount_out:l,amount_in_max:u,send_to:n,keep_alive:!0})})}}},uo=()=>({swapTokensForExactTokens:Mi});import{hub as Gi,MultiAddress as Oi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Wi}from"@galacticcouncil/xc-core";var Ui="Assets",Ki=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:o})=>{let a=o.chain,{fee:r}=o,c=n>r.amount?n-r.amount:n,i=a.getMetadataAssetId(e);return new Wi({module:Ui,func:t,getTx:m=>m.getTypedApi(Gi).tx.Assets.transfer({id:Number(i),target:Oi.Id(s),amount:c})})}}},lo=()=>({transfer:Ki});import{ExtrinsicConfig as qi}from"@galacticcouncil/xc-core";var po="Balances",ji=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new qi({module:po,func:e,getTx:s=>s.getUnsafeApi().tx[po][e]({dest:n,keep_alive:t})})}},fo=()=>({transferAll:ji});import{hydration as zi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as $i}from"@galacticcouncil/xc-core";var Ji="Router",Yi=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:o}=n;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=s,m=i.getMetadataAssetId(a),d=i.getMetadataAssetId(r),u=r.amount,l=a.amount+a.amount*BigInt(t.slippage)/100n;return new $i({module:Ji,func:"buy",getTx:f=>f.getTypedApi(zi).tx.Router.buy({asset_in:Number(m),asset_out:Number(d),amount_out:u,max_amount_in:l,route:c})})}}),ho=()=>({buy:Yi});import{ExtrinsicConfig as Qi}from"@galacticcouncil/xc-core";var yo="Utility",Zi=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(o=>o.build(n)));return new Qi({module:yo,func:e,getTx:o=>{let a=s.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[yo][e]({calls:a})}})}}},bo=()=>({batchAll:Zi});import{Abi as e0,ExtrinsicConfig as t0}from"@galacticcouncil/xc-core";import{Binary as n0}from"polkadot-api";import{encodeFunctionData as s0}from"viem";var qe=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(qe||{}),Be=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Be||{});var go="EthereumXcm",o0=t=>{let e="transact";return{build:async n=>{let s=await t.build(n),o="V1",a=s0({abi:e0[s.module],functionName:s.func,args:s.args});return new t0({module:go,func:e,getTx:r=>r.getUnsafeApi().tx[go][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:s.address},value:[0n,0n,0n,0n],input:n0.fromHex(a),access_list:void 0}}})})}}},Wn=()=>({transact:o0});import{ExtrinsicConfig as gt}from"@galacticcouncil/xc-core";import{big as un}from"@galacticcouncil/common";import{multiloc as Xo,ChainEcosystem as ts}from"@galacticcouncil/xc-core";import{XcmV3Junctions as Z,XcmV3Junction as Tt,XcmV3JunctionNetworkId as Bo,XcmV3MultiassetFungibility as ft,XcmV4Instruction as R,XcmV4AssetAssetFilter as ht,XcmV4AssetWildAsset as yt,XcmV3WeightLimit as mn,XcmV2MultiassetWildFungibility as S0,XcmV2OriginKind as B0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as g0,XcmV3MultiassetFungibility as Kn,XcmV3WeightLimit as x0,XcmV4AssetAssetFilter as A0,XcmV4AssetWildAsset as w0,XcmV4Instruction as Kt}from"@galacticcouncil/descriptors";import{acc as a0}from"@galacticcouncil/common";import{XcmV3Junction as xo}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as r0}from"@polkadot-api/substrate-bindings";import{toHex as i0}from"@polkadot-api/utils";function O(t){if(t.length===42&&t.startsWith("0x"))return xo.AccountKey20({key:t,network:void 0});let n=r0(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return xo.AccountId32({id:i0(n.publicKey),network:void 0})}function Gt(t,e,n){return a0.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}import{multiloc as Ao}from"@galacticcouncil/xc-core";function wo(t,e){let n=Ao.findNestedKey(t,"GeneralIndex"),s=Ao.findNestedKey(e,"GeneralIndex"),o=n&&n.GeneralIndex,a=s&&s.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function V(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var an={};Ut(an,{ETHER_TOKEN_ADDRESS:()=>Un,erc20Location:()=>u0,erc20LocationReanchored:()=>d0,ethereumLocation:()=>ko,parachainLocation:()=>m0});import{XcmV3Junctions as sn,XcmV3Junction as on,XcmV3JunctionNetworkId as c0}from"@galacticcouncil/descriptors";var Un="0x0000000000000000000000000000000000000000",Co=t=>on.GlobalConsensus(c0.Ethereum({chain_id:BigInt(t)}));function ko(t){return{parents:2,interior:sn.X1(Co(t))}}function m0(t){return{parents:1,interior:sn.X1(on.Parachain(t))}}function u0(t,e){return e===Un?ko(t):{parents:2,interior:sn.X2([Co(t),on.AccountKey20({key:e})])}}function d0(t){return t===Un?{parents:0,interior:{type:"Here"}}:{parents:0,interior:sn.X1(on.AccountKey20({key:t}))}}import{encodeLocation as vo}from"@galacticcouncil/common";import{multiloc as l0}from"@galacticcouncil/xc-core";function M(t,e){return p0(e)>=4?vo(t):f0(t)}function p0(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function f0(t){return{type:"Concrete",value:vo(t)}}var h0=1e3;function y0(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function b0(t){if(t)return y0(t)?h0:l0.findParachain(t)}function Eo(t,e,n,s){let o=e.getAssetXcmLocation(t),a=b0(o),r=s?.parachainId??n.parachainId;if(a&&r!==a)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${s.name} (${s.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function rn(t,e){let n="V4",s=M(V(e,t),n),o=Oe;return[Kt.ReserveAssetDeposited([{id:W,fun:Kn.Fungible(j)},{id:s,fun:Kn.Fungible(j)}]),Kt.ClearOrigin(),Kt.BuyExecution({fees:{id:W,fun:Kn.Fungible(j)},weight_limit:x0.Unlimited()}),Kt.DepositAsset({assets:A0.Wild(w0.AllCounted(2)),beneficiary:{parents:0,interior:g0.X1(O(Et))}}),Kt.SetTopic(o)]}import{XcmV4Instruction as qn,XcmV3MultiassetFungibility as jn,XcmV3WeightLimit as C0}from"@galacticcouncil/descriptors";function zn(t,e){let n="V4",s=M(V(e,t),n),o=cn("V4",O(Js),O(Et),s,Oe);return[qn.WithdrawAsset([{id:W,fun:jn.Fungible(j)},{id:s,fun:jn.Fungible(j)}]),qn.ClearOrigin(),qn.BuyExecution({fees:{id:W,fun:jn.Fungible(j)},weight_limit:C0.Unlimited()}),...o.value]}import{XcmV3Junctions as $n,XcmV3Junction as k0,XcmV3MultiassetFungibility as qt,XcmV3WeightLimit as Jn,XcmV4AssetAssetFilter as Yn,XcmV4AssetWildAsset as Qn,XcmV4Instruction as Ie}from"@galacticcouncil/descriptors";function To(t,e){let n="V4",s=M(V(e,t),n),o=Oe;return[Ie.WithdrawAsset([{id:s,fun:qt.Fungible(j)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:s,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositAsset({assets:Yn.Wild(Qn.AllCounted(1)),beneficiary:{parents:0,interior:$n.X1(O(Et))}}),Ie.SetTopic(o)]}function Zn(t,e){let n="V4",s=M(V(e,t),n);return[Ie.BuyExecution({fees:{id:s,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositAsset({assets:Yn.Wild(Qn.AllCounted(1)),beneficiary:{parents:0,interior:$n.X1(O(Et))}})]}function Fo(t,e,n){let s="V4",o=M(V(e,t),s),a=Oe,r=Zn(t,n);return[Ie.WithdrawAsset([{id:o,fun:qt.Fungible(j)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:o,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositReserveAsset({assets:Yn.Wild(Qn.AllCounted(1)),dest:{parents:1,interior:$n.X1(k0.Parachain(n.parachainId))},xcm:r}),Ie.SetTopic(a)]}import{XcmV3MultiassetFungibility as es,XcmV5AssetFilter as v0,XcmV5Instruction as Ot,XcmV5Junctions as E0,XcmV5Junction as T0,XcmV5WildAsset as F0}from"@galacticcouncil/descriptors";function So(t,e){let n="V5",s=M(V(e,t),n),o={parents:0,interior:E0.X1(T0.AccountId32({id:$s,network:void 0}))};return[Ot.ReserveAssetDeposited([{id:W,fun:es.Fungible(j)}]),Ot.PayFees({asset:{id:W,fun:es.Fungible(j)}}),Ot.ReserveAssetDeposited([{id:s,fun:es.Fungible(j)}]),Ot.ClearOrigin(),Ot.DepositAsset({assets:v0.Wild(F0.AllCounted(3)),beneficiary:o}),Ot.SetTopic(Oe)]}var Po=[ts.Polkadot,ts.Kusama],P0={parents:1,interior:Z.X1(Tt.Parachain(1e3))},X0=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},_o=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Po.includes(t.ecosystem)&&Po.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Do=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},je=(t,e,n)=>{if(_o(e,n))return{type:t,value:ns(n.ecosystem,n.parachainId)};if(n.parachainId===zs)return{type:t,value:{parents:1,interior:Z.Here()}};let s=n.key==="ethereum"?lt:n.parachainId;return{type:t,value:{parents:1,interior:Z.X1(Tt.Parachain(s))}}},_0=t=>t===ts.Kusama?Bo.Kusama():Bo.Polkadot(),ns=(t,e)=>({parents:2,interior:Z.X2([Tt.GlobalConsensus(_0(t)),Tt.Parachain(e)])}),Io=(t,e,n,s)=>{if(_o(e,n)){if(e.parachainId!==lt){let o=Xo.findGlobalConsensus(V(e,s)),a=typeof o=="string"&&o===n.ecosystem;return{dest:{type:t,value:{parents:1,interior:Z.X1(Tt.Parachain(lt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(n.parachainId!==lt)return{dest:{type:t,value:ns(n.ecosystem,lt)},mode:"onward"}}},Ft=(t,e)=>({type:t,value:{parents:0,interior:Z.X1(e)}}),ss=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:X0(n)?P0:n}}:{type:e},bt=(t,e)=>({id:t,fun:ft.Fungible(e)}),Ro=(t,e,n)=>({type:t,value:[R.DepositAsset({assets:ht.Wild(yt.AllCounted(n)),beneficiary:{parents:0,interior:Z.X1(e)}})]}),cn=(t,e,n,s,o)=>{let a=o;return{type:t,value:[R.SetAppendix([R.DepositAsset({assets:ht.Wild(yt.All()),beneficiary:{parents:0,interior:Z.X1(n)}})]),R.InitiateReserveWithdraw({assets:ht.Wild(yt.AllOf({id:s,fun:S0.Fungible()})),reserve:an.ethereumLocation(De),xcm:[R.BuyExecution({fees:{id:D0(s),fun:ft.Fungible(1n)},weight_limit:mn.Unlimited()}),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}}),R.SetTopic(a)]}),R.SetTopic(a)]}},Lo=(t,e,n,s,o,a)=>{let r=s==="onward"?{parents:1,interior:Z.X1(Tt.Parachain(n.parachainId))}:ns(n.ecosystem,n.parachainId),c={parents:0,interior:Z.X1(e)},i=ht.Wild(yt.AllCounted(1)),m=[R.BuyExecution({fees:{id:o,fun:ft.Fungible(a)},weight_limit:mn.Unlimited()}),R.DepositAsset({assets:i,beneficiary:c})],d=s==="bridge-withdraw"?R.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):R.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[R.SetAppendix([R.DepositAsset({assets:ht.Wild(yt.All()),beneficiary:c})]),d]}},D0=t=>{let e=Xo.findNestedKey(t,"key");return e?{parents:0,interior:Z.X1(Tt.AccountKey20({key:e.key}))}:{parents:0,interior:Z.Here()}},Ho=(t,e,n,s,o,a)=>({type:t,value:[R.WithdrawAsset([{id:n,fun:ft.Fungible(s)}]),R.BuyExecution({fees:{id:n,fun:ft.Fungible(s)},weight_limit:mn.Unlimited()}),R.Transact({origin_kind:B0.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),R.RefundSurplus(),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}})]}),Vo=(t,e,n,s,o,a)=>({type:t,value:[R.WithdrawAsset([{id:n,fun:ft.Fungible(o)}]),R.BuyExecution({fees:{id:n,fun:ft.Fungible(o)},weight_limit:mn.Unlimited()}),R.TransferAsset({assets:[{id:n,fun:ft.Fungible(s)}],beneficiary:{parents:0,interior:Z.X1(a)}}),R.RefundSurplus(),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}})]});var ee="PolkadotXcm",I0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=V(r,n),d=V(r,s.fee),u=M(m,i),l=M(d,i),f=bt(u,e),y=bt(l,s.fee.amount),A="limited_reserve_transfer_assets";return new gt({module:ee,func:A,getTx:E=>{let T=E.getUnsafeApi().tx[ee][A];return n.key===s.fee.key?T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[f]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):wo(m,d)?T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[y,f]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):T({dest:je(i,r,c),beneficiary:Ft(i,a),assets:{type:i,value:[f,y]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),R0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="limited_teleport_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),L0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i=r.xcmVersion??"V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="reserve_transfer_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0})})}}),H0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=M(V(r,n),i),d=bt(m,e),u=je(i,r,c),l=Ft(i,a),f={type:i,value:[d]},y="transfer_assets";return new gt({module:ee,func:y,getTx:A=>A.getUnsafeApi().tx[ee][y]({dest:u,beneficiary:l,assets:f,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),V0=t=>({build:async({address:e,asset:n,amount:s,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let m="V4",d=c.chain,u=o.chain,l=o.fee.amount,f=o.fee;i&&(u=i.chain,l=un.toBigInt(i.fee.amount,i.fee.decimals),f=i.fee);let y=O(r),A=i||u.usesCexForwarding?Gt(d,r,u):e,E=O(A),{transferType:T}=t,_=M(V(d,n),m),D=M(V(d,f),m),G=bt(_,s),J=bt(D,l),w=n.isEqual(f),ve=Io(m,d,u,n),st=ve?.dest??je(m,d,u),$e={type:m,value:w?[G]:[J,G]},Yt=ss(m,T,_),Bn={type:m,value:w?_:D},Pn=ss(m,T,D),Xt;if(Do(_)&&o.chain.isEvmChain())Xt=cn(m,E,y,_,a);else if(ve){let Wt=un.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Ua=M(V(u,n),m);Xt=Lo(m,E,u,ve.mode,Ua,Wt)}else Xt=Ro(m,E,$e.value.length);let Qt="transfer_assets_using_type_and_then";return new gt({module:ee,func:Qt,getTx:Wt=>Wt.getUnsafeApi().tx[ee][Qt]({dest:st,assets:$e,assets_transfer_type:Yt,remote_fees_id:Bn,fees_transfer_type:Pn,custom_xcm_on_dest:Xt,weight_limit:{type:"Unlimited"}})})}}),N0=()=>{let t="send";return{transact:e=>({build:async n=>{let{sender:s,source:o,transact:a}=n,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,m=Gt(c,s,i),d=O(m),{fee:u}=a,l=M(V(i,u),r),f=un.toBigInt(e.fee,u.decimals);return new gt({module:ee,func:t,getTx:y=>y.getUnsafeApi().tx[ee][t]({dest:je(r,c,i),message:Ho(r,d,l,f,a.call,a.weight)})})}}),transferAsset:e=>({build:async n=>{let{amount:s,address:o,asset:a,sender:r,source:c,destination:i}=n,m="V4",d=c.chain,u=i.chain,l=Gt(d,r,u),f=O(l),y=O(o),A=M(V(u,a),m),{fee:E}=i,T=un.toBigInt(e.fee,E.decimals),_=s>E.amount?s-(E.amount+T):s;return new gt({module:ee,func:t,getTx:D=>D.getUnsafeApi().tx[ee][t]({dest:je(m,d,u),message:Vo(m,f,A,_,T,y)})})}})}};function M0(t){let e=n=>({build:async s=>{let o=n(s),a="execute";return new gt({module:ee,func:a,getTx:r=>r.getUnsafeApi().tx[ee][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Qs)}}var os=()=>({limitedReserveTransferAssets:I0,limitedTeleportAssets:R0,reserveTransferAssets:L0,transferAssets:H0,transferAssetsUsingTypeAndThen:V0,execute:M0,send:N0});import{ExtrinsicConfig as O0}from"@galacticcouncil/xc-core";import{encodeAssetId as W0}from"@galacticcouncil/common";import{XcmV3Junctions as No,XcmV3Junction as G0}from"@galacticcouncil/descriptors";var Mo=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:No.X1(n)}}:{type:t,value:{parents:1,interior:No.X2([G0.Parachain(e.parachainId),n])}};var Go="XTokens",U0=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:o,source:a})=>{let r=a.chain,c=s.chain,i="V3",m=c.usesCexForwarding?Gt(r,o,c):t,d=O(m),u=r.getAssetId(n),l=W0(u),f="transfer";return new O0({module:Go,func:f,getTx:y=>y.getUnsafeApi().tx[Go][f]({currency_id:l,amount:e,dest:Mo(i,c,d),dest_weight_limit:{type:"Unlimited"}})})}}),as=()=>({transfer:U0});function p(){return{assetConversion:uo,assets:lo,balances:fo,ethereumXcm:Wn,polkadotXcm:os,router:ho,utility:bo,xTokens:as}}function xt(t,e){return{prior:function(n){return{build:async s=>t(s)?p().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?p().utility().batchAll([e,...n]).build(s):p().utility().batchAll([...n]).build(s)}}}}import{Abi as Yo,Snowbridge as tc,Basejump as nc}from"@galacticcouncil/xc-core";var Oo=80000n,Wo=120000n,Uo=100000n,Ko=2000000n,rs=15000000000000n;var Jo={};Ut(Jo,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>zo,AssethubClient:()=>ke,BaseClient:()=>Re,HydrationClient:()=>te,getAllAssetDepositLimits:()=>cs,getAssetDepositLimit:()=>is,getGlobalWithdrawLimit:()=>ms});import{encodeLocation as qo}from"@galacticcouncil/common";import{hub as K0,XcmVersionedAssetId as jo}from"@galacticcouncil/descriptors";var Re=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??K0}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,jo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,jo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as dn,XcmV5Junction as q0,XcmVersionedLocation as j0,XcmVersionedXcm as z0,XcmVersionedAssetId as $0}from"@galacticcouncil/descriptors";import{encodeLocation as J0}from"@galacticcouncil/common";import{Twox128 as Y0,u128 as Q0}from"@polkadot-api/substrate-bindings";import{toHex as Z0}from"@polkadot-api/utils";var ke=class extends Re{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),o=J0(s);if(n===0)return!0;let a=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(n));return a&&a.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(s),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,n){let s=new TextEncoder().encode(e),o=Z0(Y0(s)),a=await this.client._request("state_getStorage",[o]);if(!a)return n;let r=Q0.dec(a);return r===0n?n:r}async calculateDeliveryFee(e,n){let s=j0.V5({parents:1,interior:dn.X1(q0.Parachain(n))}),o=$0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,z0.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};import{hydration as ec}from"@galacticcouncil/descriptors";var zo=14400;function $o(t,e,n,s,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,d,u,l;n&&(n.type==="Locked"?(d=n.value,m=o<n.value):(u=n.value[0],l=n.value[1]));let f=s?.type==="Local"?"Local":"External",y=!m&&u!==void 0&&u+zo<=o,A=null;if(r!==null)if(m)A=0n;else if(y)A=r;else{let E=l??a,T=a>E?a-E:0n;A=r>T?r-T:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:d,lastResetBlock:u,baselineIssuance:l,currentIssuance:a,headroom:A,category:f,periodExpired:y}}async function is(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),n]);return $o(e,s,o,a,r,c)}async function cs(t){let[e,n,s,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(n.map(u=>[u.keyArgs[0],u.value])),i=new Map(s.map(u=>[u.keyArgs[0],u.value])),m=new Map(r.map(u=>[u.keyArgs[0],u.value])),d=new Map;for(let u of e){let l=u.keyArgs[0],f=u.value;if(f?.xcm_rate_limit==null)continue;let y=l===0?a:m.get(l)??0n,A=$o(l,f,c.get(l),i.get(l),o,y);d.set(l.toString(),A)}return d}async function ms(t){let[e,n,s,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=s??void 0,r=a!==void 0&&o<a,[c,i]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:d}=e,u=c;if(!r&&d>0n){let f=o>i?o-i:0n;if(f>0n){let y=f>d?d:f,A=c*y/d;u=c>A?c-A:0n}}let l=r||u>=m?0n:m-u;return{configured:!0,limit:m,windowMs:d,used:u,lastUpdateMs:i,headroom:l,lockdown:r,lockdownUntilMs:a}}var te=class extends Re{constructor(e){super(e,ec)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),o=await this.api().query.AssetRegistry.Assets.getValue(s);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,n){let s=Number(n),o=await this.api().query.Tokens.Accounts.getValue(e,s),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return is(this.api(),n)}getAllAssetDepositLimits(){return cs(this.api())}getGlobalWithdrawLimit(){return ms(this.api())}};function sc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:n})=>{let s=n,o=new te(s),a=new ke(t.hub),r=rn(e,s),c=So(e,s),i=Mt(De),m=250000000n,d=Ys(De,s.parachainId),[u,l,f,y]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,nn),a.calculateDestinationFeeV5(d,x)]),A=q(u,33n),E=q(l,33n),T=q(f,33n),D=q(y,33n)+E,G=A,J=await a.quoteEtherForDot(i,D),w=q(J,30n),ve=w<rs*2n?rs*2n:w,st=q(await a.quoteEtherForDot(i,G),100n),$e=q(await a.quoteDotToEther(i,m+T),30n);return{amount:ve+$e+st,breakdown:{executionFee:ve,relayerFee:$e,remoteEtherFee:st,hydrationDotFee:G}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:o})=>{let a=s,r=o,c=new ke(t.hub),i=Mt(De),m=zn(e,a),[d,u,l]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,nn),c.calculateDestinationFee(m,n)]),f=await r.evmClient.getProvider().getGasPrice(),y=Ko+Wo+Oo+Uo,A=f*y,E=q(A,10n),T=d+q(u,33n)+q(l,33n),_=q(await c.quoteDotForExactEther(i,E),20n),D=new te(a),G=Gn({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:Oe}),J=q(await D.calculateDestinationFeeV5(G,x),33n);return{amount:T+_+J,breakdown:{dotRemoteFee:T,dotToEtherSwapAmount:_,etherFeeAmount:E,sourceExecutionFee:J}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:n,source:s})=>{let o=s,a=n,r=tc.fromChain(o),c=new Re(a),i=new ke(t.hub),m=rn(e,a),[d,u]=await Promise.all([c.calculateDestinationFee(m,x),i.calculateDeliveryFee(m,a.parachainId)]),l=u+q(d,25n),f=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Yo.Snowbridge,address:r.getGateway(),args:[f,a.parachainId,l],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:l}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:n,source:s})=>{let o=s,a=new ke(t.hub),r=zn(e,o),c=rn(e,o),[i,m,d,u,l]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,nn),a.calculateDestinationFee(r,n),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,n)]);return{amount:i+m+q(d,25n)+u+q(l,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:d,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:l}}}})}}function oc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let o=n,a=s,r=t?.reserve;if(Eo(e,o,a,r),r){let l=new Re(a),f=new Re(r),y=Zn(e,a),A=Fo(e,r,a),[E,T]=await Promise.all([l.calculateDestinationFee(y,e),f.calculateDestinationFee(A,e)]),_=T+E,D=q(_,20n),G=D-_;return{amount:D,breakdown:{reserveFee:T,destinationFee:E,margin:G}}}let c=new Re(a),i=To(e,a),m=await c.calculateDestinationFee(i,e),d=q(m,20n),u=d-m;return{amount:d,breakdown:{totalFee:m,margin:u}}}})}}function ac(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=nc.fromChain(n),o=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Yo.Basejump,address:s.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function S(){return{Basejump:ac,XcmPaymentApi:oc,Snowbridge:sc}}var rc="0";function ic(){return{build:async({address:t,chain:e})=>{let s=await new te(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=s?s.toString():rc,a=e.findAssetById(o);return a?a.asset:_t}}}var cc=()=>({accountCurrencyMap:ic});function jt(){return{multiTransactionPayment:cc}}import{EvmParachain as mc,MoveConfig as uc,Ntt as dc,suiPkg as ln,Wormhole as Qo}from"@galacticcouncil/xc-core";import{Transaction as lc}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as us}from"@mysten/sui/utils";import{encoding as pc}from"@wormhole-foundation/sdk-base";var fc=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=dc.fromChain(r,s),m=Qo.fromChain(r),d=Qo.fromChain(c),u=r.client,l=e;c instanceof mc&&(l=await c.getDerivatedAddress(e));let f=pc.hex.decode(d.normalizeAddress(l)),y=m.getCoreBridge(),A=i.manager,E=i.transceiver.wormhole,T=i.token,[_,D,G,J]=await Promise.all([ln.getWormholePackageId(u,y),ln.getCurrentPackageId(u,A),ln.getCurrentPackageId(u,E),ln.getCoinMetadataId(u,T)]),w=new lc,[ve]=w.splitCoins(w.gas,[w.pure.u64(n)]),[st]=w.moveCall({target:`${D}::upgrades::new_version_gated`,arguments:[]}),[$e,Yt]=w.moveCall({target:`${D}::ntt::prepare_transfer`,typeArguments:[T],arguments:[w.object(A),ve,w.object(J),w.pure.u16(d.getWormholeId()),w.pure.vector("u8",Array.from(f)),w.pure.option("vector<u8>",null),w.pure.bool(!1)]}),[Bn]=w.moveCall({target:`${D}::state::get_next_sequence`,typeArguments:[T],arguments:[w.object(A)]});w.moveCall({target:`${D}::ntt::transfer_tx_sender`,typeArguments:[T],arguments:[w.object(A),st,w.object(J),$e,w.object(us)]});let[Pn]=w.moveCall({target:`${D}::state::create_transceiver_message`,typeArguments:[`${G}::wormhole_transceiver::TransceiverAuth`,T],arguments:[w.object(A),Bn,w.object(us)]}),[Xt]=w.moveCall({target:`${G}::wormhole_transceiver::release_outbound`,typeArguments:[`${D}::auth::ManagerAuth`],arguments:[w.object(E),Pn]}),[Qt]=w.splitCoins(w.gas,[w.pure.u64(0n)]);w.moveCall({target:`${_}::publish_message::publish_message`,arguments:[w.object(y),Qt,Xt,w.object(us)]});let[Wt]=w.moveCall({target:"0x2::coin::from_balance",typeArguments:[T],arguments:[Yt]});return w.mergeCoins(w.gas,[Wt]),new uc({transaction:w,func:"transfer",module:"NttManager"})}}),Zo=()=>({transfer:fc});function ea(){return{Ntt:Zo}}function ds(){return{Wormhole:ea}}import{EvmParachain as hc,Ntt as yc,ProgramConfig as bc,SolanaBalanceType as gc,Wormhole as ta}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as xc}from"@solana/spl-token";import{Keypair as Ac,TransactionMessage as wc}from"@solana/web3.js";import{toChain as Cc}from"@wormhole-foundation/sdk-base";import{UniversalAddress as kc}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as vc}from"@wormhole-foundation/sdk-solana";import{SolanaNtt as Ec}from"@wormhole-foundation/sdk-solana-ntt";import"@wormhole-foundation/sdk-definitions-ntt";async function Tc(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(s=>t.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null)}async function Fc(t,e,n){let s=await Tc(t,e);return{instructions:"message"in e?wc.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions,signers:n,lookupTables:s}}var Sc=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=yc.fromChain(c,s),d=ta.fromChain(c),u=ta.fromChain(i),l=e;i instanceof hc&&(l=await i.getDerivatedAddress(e));let f=new Ec("Mainnet","Solana",c.connection,{coreBridge:d.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),y=c.getBalanceType(s)===gc.Native,A=Ac.generate(),E=[];for await(let D of f.transfer(new vc(o),n,{chain:Cc(u.getWormholeId()),address:new kc(u.normalizeAddress(l))},{queue:!1,automatic:!1,wrapNative:y},A)){let{transaction:G,signers:J}=D.transaction;E.push(await Fc(c.connection,G,J??[]))}let T=y?BigInt(await xc(c.connection)):0n,_=E[E.length-1];return new bc({instructions:_.instructions,signers:_.signers,lookupTables:_.lookupTables,prerequisites:E.slice(0,-1),rentReserve:T,func:"transfer",module:"NttManager"})}}),na=()=>({transfer:Sc});function sa(){return{Ntt:na}}function ls(){return{Wormhole:sa}}var aa={};Ut(aa,{Tag:()=>At});var At=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(At||{});function ia(t,e){return new ra({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ca(t,e){return new ra({source:{asset:t,fee:{asset:B},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:S().Basejump().quoteFee(),asset:t}},contract:Se().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Pc=[ca(We,Ye)],Xc=[ia(We,Ye)],ma=new Bc({chain:Dt,routes:[...Xc,...Pc]});import{AssetRoute as ua,ChainRoutes as _c}from"@galacticcouncil/xc-core";import{AssetRoute as ps}from"@galacticcouncil/xc-core";function wt(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ne(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:S().Snowbridge().calculateInboundFee({hub:F}),asset:B}},contract:Se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function se(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:S().Snowbridge().calculateInboundFeeV1({hub:F}),asset:B}},contract:Se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Dc=[wt(Je,ot),wt(Ve,at),wt(C,it),wt(g,rt),wt(Me,ct),wt(et,tt),wt(B,tt)],Ic=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:S().Snowbridge().calculateInboundFee({hub:F}),asset:B}},contract:Se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ne(re,re),ne(ie,ie),ne(ce,ce),ne(me,me),ne(pe,pe),ne(he,he),ne(ye,ye),ne(de,de),ne(ue,ue),ne(le,le),ne(fe,fe),ne(be,be),ne(ge,ge),ne(C,Ze),ne(g,Qe)],Rc=[new ua({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:S().Snowbridge().calculateInboundFeeV1({hub:F}),asset:B}},contract:Se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),se(re,re),se(ie,ie),se(ce,ce),se(me,me),se(pe,pe),se(he,he),se(ye,ye),se(de,de),se(ue,ue),se(le,le),se(fe,fe),se(be,be),se(ge,ge),se(C,Ze),se(g,Qe)],da=new _c({chain:k,routes:[...Dc,...Ic,...Rc]});var la=[ma,da];import{AssetRoute as hn,ChainRoutes as fa}from"@galacticcouncil/xc-core";import{AssetRoute as fs}from"@galacticcouncil/xc-core";var St=0,Lc=t=>{let{source:e}=t;return!!e.feeSwap},Hc=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},pa=p().assetConversion().swapTokensForExactTokens({slippage:30});function Vc(t,e,n){return new fs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:g}},extrinsic:xt(Hc,pa).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function pn(t,e,n){return new fs({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:xt(Lc,pa).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function zt(t,e,n){return new fs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function fn(t){return Vc(t,h,.02)}var Nc=[new hn({source:{asset:x,fee:{asset:x,extra:St}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new hn({source:{asset:v,fee:{asset:x,extra:St}},destination:{chain:h,asset:v,fee:{amount:1e-4,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),zt(g,h,.02),zt(C,h,.02),fn(nt)],Mc=[new hn({source:{asset:v,fee:{asset:x,extra:St}},destination:{chain:Ge,asset:v,fee:{amount:.001,asset:v}},extrinsic:p().polkadotXcm().transferAssets()})],Gc=[zt(g,H,.03),zt(C,H,.03)],Oc=[new hn({source:{asset:L,fee:{asset:x,extra:St}},destination:{chain:ut,asset:L,fee:{amount:2.5,asset:L}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],ha=new fa({chain:mt,routes:[pn(g,h,.02),pn(C,h,.02),pn(x,h,.001)]}),ya=new fa({chain:F,routes:[...Nc,...Mc,...Gc,...Oc]});import{AssetRoute as Ct,ChainRoutes as Wc}from"@galacticcouncil/xc-core";var Uc=[new Ct({source:{asset:I},destination:{chain:h,asset:I,fee:{amount:.044306118,asset:I}},extrinsic:p().polkadotXcm().reserveTransferAssets()}),new Ct({source:{asset:X,fee:{asset:I}},destination:{chain:h,asset:X,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:N,fee:{asset:I}},destination:{chain:h,asset:N,fee:{amount:2e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:Ee,fee:{asset:I}},destination:{chain:h,asset:Ee,fee:{amount:.01,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:K,fee:{asset:I}},destination:{chain:h,asset:K,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:U,fee:{asset:I}},destination:{chain:h,asset:U,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:H}),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:g,fee:{asset:I}},destination:{chain:h,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:C,fee:{asset:I}},destination:{chain:h,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ba=new Wc({chain:Y,routes:[...Uc]});import{AssetRoute as ze,ChainRoutes as Kc}from"@galacticcouncil/xc-core";var qc=[new ze({source:{asset:X},destination:{chain:h,asset:X,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:K,fee:{asset:X}},destination:{chain:h,asset:K,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:K}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:U,fee:{asset:X}},destination:{chain:h,asset:U,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:U}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,fee:{asset:X}},destination:{chain:h,asset:x,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ze({source:{asset:I,fee:{asset:X}},destination:{chain:h,asset:I,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:Y}),asset:I}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:N,fee:{asset:X}},destination:{chain:h,asset:N,fee:{amount:625e-8,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:g,fee:{asset:X}},destination:{chain:h,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:h,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],jc=[new ze({source:{asset:g,fee:{asset:X}},destination:{chain:F,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:C,fee:{asset:X}},destination:{chain:F,asset:C,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:C}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],ga=new Kc({chain:H,routes:[...qc,...jc]});import{AssetRoute as Pt,ChainRoutes as $c}from"@galacticcouncil/xc-core";var oe=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as Bt}from"@galacticcouncil/xc-core";var zc=.02,hs=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},ys=p().router().buy({slippage:30});function Ae(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:e,asset:t,fee:{amount:S().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})}function kt(t,e){return new Bt({source:{asset:t,fee:oe()},destination:{chain:e,asset:t,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function yn(t){return new Bt({source:{asset:t,fee:oe()},destination:{chain:F,asset:t,fee:{amount:zc,asset:g}},extrinsic:xt(hs,ys).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function bs(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:Ge,asset:t,fee:{amount:e,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:n})})}function Le(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function z(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:S().Snowbridge().calculateOutboundFee({hub:F}),asset:x}},extrinsic:xt(hs,ys).prior(p().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function $(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:S().Snowbridge().calculateOutboundFeeV1({hub:F}),asset:x}},extrinsic:xt(hs,ys).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var Jc=[kt(x,F),kt(v,F),kt(g,F),kt(C,F),yn(nt)],Yc=[bs(v,.05,.005),bs(x,.2,.02)],Qc=[Ae(I,Y),Ae(X,Y,H),new Pt({source:{asset:N,fee:oe()},destination:{chain:Y,asset:N,fee:{amount:2e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Pt({source:{asset:Ee,fee:oe()},destination:{chain:Y,asset:Ee,fee:{amount:.01,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),Ae(K,Y,H),Ae(U,Y,H),Ae(g,Y,F),Ae(C,Y,F)],Zc=[Ae(X,H),Ae(K,H),Ae(U,H),Ae(I,H,Y),new Pt({source:{asset:N,fee:oe()},destination:{chain:H,asset:N,fee:{amount:5e-6,asset:N}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),Ae(g,H,F),Ae(C,H,F),new Pt({source:{asset:x,fee:oe()},destination:{chain:H,asset:x,fee:{amount:S().XcmPaymentApi().calculateDestFee({reserve:F}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],em=[new Pt({source:{asset:L,fee:oe()},destination:{chain:ut,asset:L,fee:{amount:2.5,asset:L}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],tm=[Ae(Ne,Lt)],nm=[new Pt({source:{asset:we,fee:oe()},destination:{chain:Ht,asset:we,fee:{amount:.02,asset:we}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],sm=[new Pt({source:{asset:Te,fee:oe()},destination:{chain:Rt,asset:Te,fee:{amount:1.1,asset:Te}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],om=[Ae(He,It)],am=[Le(ot,Je,k),Le(at,Ve,k),Le(it,C,k),Le(rt,g,k),Le(ct,Me,k),Le(tt,B,k)],rm=[Le(Ye,We,Dt)],im=[Le(Ce,Ce,dt),Le(Xe,Xe,dt),Le(_e,_e,dt)],cm=[Le(Fe,Fe,Vt)],mm=[z(B,B,k),z(re,re,k),z(ie,ie,k),z(ce,ce,k),z(me,me,k),z(pe,pe,k),z(he,he,k),z(ye,ye,k),z(be,be,k),z(de,de,k),z(ue,ue,k),z(le,le,k),z(fe,fe,k),z(ge,ge,k),z(Ze,C,k),z(Qe,g,k)],um=[$(B,B,k),$(re,re,k),$(ie,ie,k),$(ce,ce,k),$(me,me,k),$(pe,pe,k),$(he,he,k),$(ye,ye,k),$(be,be,k),$(de,de,k),$(ue,ue,k),$(le,le,k),$(fe,fe,k),$(ge,ge,k),$(Ze,C,k),$(Qe,g,k)],dm=[kt(x,mt),kt(g,mt),kt(C,mt)],xa=new $c({chain:h,routes:[...Jc,...Qc,...Zc,...dm,...rm,...am,...mm,...im,...cm,...um,...nm,...Yc,...em,...om,...sm,...tm]});import{AssetRoute as Aa,ChainRoutes as lm}from"@galacticcouncil/xc-core";var pm=[new Aa({source:{asset:L},destination:{chain:h,asset:L,fee:{amount:.01,asset:L}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],fm=[new Aa({source:{asset:L},destination:{chain:F,asset:L,fee:{amount:.1,asset:L}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],wa=new lm({chain:ut,routes:[...pm,...fm]});import{AssetRoute as hm,ChainRoutes as ym}from"@galacticcouncil/xc-core";var bm=[new hm({source:{asset:Ne},destination:{chain:h,asset:Ne,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Ca=new ym({chain:Lt,routes:[...bm]});import{AssetRoute as gm,ChainRoutes as xm}from"@galacticcouncil/xc-core";var Am=[new gm({source:{asset:Te},destination:{chain:h,asset:Te,fee:{amount:.2,asset:Te}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],ka=new xm({chain:Rt,routes:[...Am]});import{AssetRoute as wm,ChainRoutes as Cm}from"@galacticcouncil/xc-core";var km=[new wm({source:{asset:we,fee:{asset:we,extra:.030555}},destination:{chain:h,asset:we,fee:{amount:.03,asset:we}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],va=new Cm({chain:Ht,routes:[...km]});import{AssetRoute as vm,ChainRoutes as Em}from"@galacticcouncil/xc-core";var Tm=[new vm({source:{asset:He},destination:{chain:h,asset:He,fee:{amount:.205,asset:He}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],Ea=new Em({chain:It,routes:[...Tm]});var Ta=[ya,ha,ba,ga,xa,wa,Ea,Ca,ka,va];import{AssetRoute as Fm,ChainRoutes as Sm}from"@galacticcouncil/xc-core";function gs(t){return new Fm({source:{asset:t,fee:{asset:Ce}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:ls().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Bm=[gs(Ce),gs(Xe),gs(_e)],Fa=new Sm({chain:dt,routes:[...Bm]});var Sa=[Fa];import{AssetRoute as Pm,ChainRoutes as Xm}from"@galacticcouncil/xc-core";function _m(t){return new Pm({source:{asset:t,fee:{asset:Fe}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},move:ds().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Dm=[_m(Fe)],Ba=new Xm({chain:Vt,routes:[...Dm]});var Pa=[Ba];import{AssetRoute as bn,ChainRoutes as Im}from"@galacticcouncil/xc-core";import{AssetRoute as Tx}from"@galacticcouncil/xc-core";var $t=.0015;var Rm=new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:F,asset:v,fee:{amount:.002,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lm=new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:Nt,asset:v,fee:{amount:.0012,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Hm=[new bn({source:{asset:v,fee:{asset:v,extra:$t}},destination:{chain:h,asset:v,fee:{amount:.04,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new bn({source:{asset:x,fee:{asset:v,extra:$t}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Xa=new Im({chain:Ge,routes:[Lm,Rm,...Hm]});import{AssetRoute as _a,ChainRoutes as Vm}from"@galacticcouncil/xc-core";var xs=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});var Nm=[new _a({source:{asset:g,fee:xs()},destination:{chain:Ge,asset:g,fee:{amount:S().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Mm=[new _a({source:{asset:v,fee:xs()},destination:{chain:Ge,asset:v,fee:{amount:.0012,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Da=new Vm({chain:Nt,routes:[...Nm,...Mm]});var Ia=[Xa,Da];var Gm=[...la,...Ta,...Sa,...Pa,...Ia],Om=new Map(Gm.map(t=>[t.chain.key,t]));import{Parachain as Na}from"@galacticcouncil/xc-core";import{Parachain as Wm,TransferValidation as Ra,TransferValidationError as La}from"@galacticcouncil/xc-core";var gn=class extends Ra{async validate(e){let{source:n}=e,{chain:s,fee:o,feeBalance:a}=n;if(a.amount<o.amount)throw new La("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:s.name,error:"fee.insufficientBalance"})}},xn=class extends Ra{async skipFor(e){let{asset:n,source:s}=e,{enabled:o}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=s,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new La("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e instanceof Wm)return(await e.getMin(n)).amount;let s=e.getAssetMin(n);return BigInt(s*10**n.decimals)}};import{TransferValidation as Ha,TransferValidationError as Va}from"@galacticcouncil/xc-core";var An=class extends Ha{async skipFor(e){let{asset:n,destination:s}=e,o=s.chain;return await new ke(o).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain;if(await new ke(a).getSystemAccountBalance(s)===0n)throw new Va("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},wn=class extends Ha{async validate(e){let{asset:n,sender:s,source:o}=e,a=o.chain;if(await new ke(a).checkIfFrozen(s,n))throw new Va("Asset_Frozen",{asset:n.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Tn,TransferValidationError as Jt}from"@galacticcouncil/xc-core";var Um=12,Km=1,qm=18,Cn=class extends Tn{async skipFor(e){let{destination:n}=e,s=n.chain,o=new te(s),a=n.balance.amount>0n,r=await o.checkIfSufficient(n.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain,r=new te(a),c=await r.getFeeAsset(s),i=a.findAssetById(c),m=i.min||Km,d=i.decimals||Um,u=m*Math.pow(10,d),l=await r.getAssetBalance(s,c);if(BigInt(u*1.1)>l)throw new Jt("Insufficient_Ed",{amount:u,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},kn=class extends Tn{async validate(e){let{amount:n,asset:s,destination:o}=e,a=o.chain,c=await new te(a).getAssetDepositLimit(s);if(c.locked)throw new Jt("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&n>c.headroom)throw new Jt("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},vn=class extends Tn{async validate(e){let{source:n}=e,s=n.chain,a=await new te(s).getGlobalWithdrawLimit();if(a.lockdown)throw new Jt("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},En=class extends Tn{async skipFor(e){let{source:n,transact:s}=e,{enabled:o}=n.destinationFeeSwap||{};return!(!!s&&s.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:s,source:o}=e,a=o.chain,r=new te(a),c=a.getBalanceAssetId(Pe),i=a.getAssetDecimals(Pe)||qm,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(s,c.toString())<BigInt(m))throw new Jt("Insufficient_Ed",{amount:1,asset:Pe.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var ae={isAny:()=>!0,isHydration:t=>t instanceof Na&&t.parachainId===2034,isHub:t=>t instanceof Na&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},jm=[new gn(ae.isAny,ae.isAny),new xn(ae.isAny,ae.isAny),new An(ae.isAny,ae.isHub),new wn(ae.isHub,ae.isAny),new Cn(ae.isAny,ae.isHydration),new En(ae.isHydration,ae.isAny),new kn(ae.isAny,ae.isHydration),new vn(ae.isHydration,ae.isAny)];var Ga={};Ut(Ga,{AssethubDex:()=>ws,HydrationDex:()=>As});import{pool as zm,sor as $m,tx as Jm}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as Ym}from"@galacticcouncil/common";import{Binary as Qm}from"polkadot-api";import{memoize1 as Zm}from"@thi.ng/memoize";var{PoolType:Fn}=zm,{TradeRouteBuilder:eu,TradeRouter:tu}=$m,{TxBuilderFactory:nu}=Jm,As=class{chain;client;poolCtx;txBuilder;getCtx=Zm(async e=>{console.log("init swap router",e,"\u2705");let n=new tu(this.poolCtx);return n.withFilter({useOnly:[Fn.Aave,Fn.Omni,Fn.Stable,Fn.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new te(this.chain),this.txBuilder=new nu(n.client,n.evm)}async getCalldata(e,n,s,o,a=0){let r=Number(this.chain.getMetadataAssetId(n)),c=Number(this.chain.getMetadataAssetId(s)),i=o.amount,m=await this.getCtx(1),d=await m.getMostLiquidRoute(r,c),u=await m.getBuy(r,c,i,d),y=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Qm.toHex(y)}async getQuote(e,n,s,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(n)),c=s.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),d=await i.getBuy(a,r,c,m);return{amount:d.amountIn,route:eu.build(d.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,s.amount)};throw m}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*n,r=Math.pow(10,Ym);return a/BigInt(r)}};import{encodeLocation as Ma}from"@galacticcouncil/common";var ws=class{chain;client;constructor(e){this.chain=e,this.client=new ke(this.chain)}async getCalldata(e,n,s,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(n),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Ma(o),Ma(a),s.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as ou}from"@galacticcouncil/xc-core";import{Asset as su}from"@galacticcouncil/xc-core";function Sn(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new su({key:[o,n,e].join("_"),originSymbol:s})}function Oa(t){let{decimals:e,id:n}=t;return{asset:Sn(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function Wa(t){let{decimals:e,id:n,internalId:s,origin:o}=t;return{asset:Sn(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var Cs=class extends ou{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),o=a=>!!n.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=Sn(a),c=Oa(a),i=Wa(a);console.log("\u{1F480} Registering "+r.key),s.updateAsset(c),n.updateAsset(i),this.updateAsset(r),this.updateChainRoute(s,fn(r)),this.updateChainRoute(n,yn(r))})}};export{Cs as HydrationConfigService,ja as assetsMap,oa as builders,$r as chainsMap,Jo as clients,Ga as dex,Om as routesMap,aa as tags,jm as validations};
|
|
1
|
+
var Ka=Object.defineProperty;var Ut=(t,e)=>{for(var n in e)Ka(t,n,{get:e[n],enumerable:!0})};import{Asset as 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 ks}from"@galacticcouncil/xc-core";import{mainnet as er}from"viem/chains";var k=new Za({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:B,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:re,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ie,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:ce,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:et,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:Je,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:me,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:he,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ve,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:ye,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Me,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:de,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:C,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset: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:ks.Erc20,balanceOverrides:{[B.key]:ks.Native},ecosystem:Qa.Ethereum,evmChain:er,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[Je.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[Ve.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[C.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[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 vs=[Dt,k];import{ChainEcosystem as tr,Parachain as Es,SubstrateBalanceType as Zt,SubstrateMinType as nr}from"@galacticcouncil/xc-core";var Ts={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset: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 Es({...Ts,key:"assethub",name:"AssetHub Polkadot"}),mt=new Es({...Ts,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as sr,Parachain as or,SubstrateBalanceType as Fs}from"@galacticcouncil/xc-core";var Y=new or({assetsData:[{asset: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:Fs.Assets,balanceOverrides:{[D.key]:Fs.System},ecosystem:sr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as ar,Parachain as rr,SubstrateBalanceType as Ss}from"@galacticcouncil/xc-core";var ir=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],H=new rr({assetsData:[{asset:X,id:{Native:X.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset: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:Ss.Tokens,balanceOverrides:{[X.key]:Ss.System},ecosystem:ar.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:ir});import{ChainEcosystem as dr,EvmParachain as lr,SubstrateBalanceType as Ps}from"@galacticcouncil/xc-core";import{defineChain as pr}from"viem";import{h160 as cr}from"@galacticcouncil/common";import{AccountId as mr}from"polkadot-api";var{isEvmAccount:ur,H160:Bs}=cr,en=class{async toH160(e,n){if(ur(e))return Bs.fromAccount(e);let s=Bs.fromSS58(e);if(n&&await this.isBound(n,s,e))return s;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,n,s){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(n);if(!a)return!1;let r=mr().enc(s),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var fr=new en,In=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Rn=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],hr=pr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:In,webSocket:Rn},default:{http:In,webSocket:Rn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new lr({assetsData:[{asset:_t,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:re,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Xn,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset: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:Ps.Tokens,balanceOverrides:{[_t.key]:Ps.System},ecosystem:dr.Polkadot,evmChain:hr,evmResolver:fr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[ot.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Ye.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Xe.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[_e.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Ce.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Fe.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[at.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[it.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[rt.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[ct.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[tt.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Rn,rpcs:In});import{ChainEcosystem as yr,Parachain as br,SubstrateBalanceType as gr}from"@galacticcouncil/xc-core";var ut=new br({assetsData:[{asset:L,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:gr.System,ecosystem:yr.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});import{ChainEcosystem as xr,Parachain as Ar,SubstrateBalanceType as wr}from"@galacticcouncil/xc-core";var It=new Ar({assetsData:[{asset:He,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:wr.System,ecosystem:xr.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as Cr,Parachain as kr,XcmVersion as vr,SubstrateBalanceType as Er}from"@galacticcouncil/xc-core";var Rt=new kr({assetsData:[{asset:Te,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Er.System,ecosystem:Cr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:vr.v3});import{ChainEcosystem as Tr,Parachain as Fr,SubstrateBalanceType as Sr}from"@galacticcouncil/xc-core";var Br={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:Sr.System,ecosystem:Tr.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},Xs=new Fr({...Br,key:"polkadot"});import{ChainEcosystem as Pr,Parachain as Xr,SubstrateBalanceType as _r}from"@galacticcouncil/xc-core";var Lt=new Xr({assetsData:[{asset:Ne,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:_r.System,ecosystem:Pr.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as Dr,Parachain as Ir,XcmVersion as Rr,SubstrateBalanceType as Lr}from"@galacticcouncil/xc-core";var Ht=new Ir({assetsData:[{asset:we,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Lr.System,ecosystem:Dr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Rr.v3});var _s=[T,mt,Y,H,h,It,ut,Rt,Xs,Lt,Ht];import{ChainEcosystem as Hr,SolanaChain as Vr,SolanaBalanceType as Ds}from"@galacticcouncil/xc-core";var dt=new Vr({id:101,key:"solana",name:"Solana",assetsData:[{asset:Ce,decimals:9},{asset:Xe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:_e,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Ds.Token,balanceOverrides:{[Ce.key]:Ds.Native},ecosystem:Hr.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",ntt:{[Ce.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Xe.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[_e.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Is=[dt];import{ChainEcosystem as Nr,SuiChain as Mr,SuiBalanceType as Gr}from"@galacticcouncil/xc-core";var Vt=new Mr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Fe,decimals:9}],balance:Gr.Native,ecosystem:Nr.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[Fe.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var Rs=[Vt];import{ChainEcosystem as Or,Parachain as Wr,SubstrateBalanceType as Ls,SubstrateMinType as Ur}from"@galacticcouncil/xc-core";var Ge=new Wr({assetsData:[{asset: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:Ls.Assets,balanceOverrides:{[E.key]:Ls.System},min:Ur.Assets,ecosystem:Or.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as Kr,Parachain as qr,SubstrateBalanceType as jr}from"@galacticcouncil/xc-core";var Nt=new qr({assetsData:[{asset:_n,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset: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=[...vs,..._s,...Is,...Rs,...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:()=>ds,ProgramBuilder:()=>ls,XcmTransferType:()=>Be,XcmVersion:()=>qe});import{Abi as Vs,ContractConfig as Jr,Precompile as Yr}from"@galacticcouncil/xc-core";import{encodeFunctionData as Qr}from"viem";var Zr=t=>({build:async e=>{let n=await Promise.all(t.map(r=>r.build(e))),s=n.map(r=>r.address),o=[0,0],a=n.map(r=>Qr({abi:Vs[r.module],functionName:r.func,args:r.args}));return new Jr({abi:Vs.Batch,address:Yr.Batch,args:[s,o,a,[]],func:"batchAll",module:"Batch"})}}),Ns=()=>({batchAll:Zr});import{Abi as ei,ContractConfig as ti,Wormhole as ni}from"@galacticcouncil/xc-core";function q(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function vt(t){return typeof t=="object"?Object.values(t)[0]:t}function Ms(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:o,transact:a}=e,r=a?a.chain:o.chain,c=ni.fromChain(r),i=r.getAssetId(s);return new ti({abi:ei.Erc20,address:vt(i).toString(),args:[t(c),n],func:"approve",module:"Erc20"})}})}}import{Abi as si,Basejump as oi,ContractConfig as ai}from"@galacticcouncil/xc-core";import{h160 as ri}from"@galacticcouncil/common";import{AccountId as ii}from"polkadot-api";import{toHex as ci}from"@polkadot-api/utils";var{H160:mi,isEvmAddress:ui}=ri;function di(t){let e=ui(t)?mi.toAccount(t):t;return ci(ii().enc(e))}var li=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o}=t,a=o.chain,r=oi.fromChain(a),c=a.getAssetId(s);return new ai({abi:si.Basejump,address:r.getAddress(),args:[vt(c),n,di(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Gs=()=>({bridgeViaWormhole:li});import{addr as pi,Abi as Os,ContractConfig as Ws,Precompile as Us}from"@galacticcouncil/xc-core";import{big as fi}from"@galacticcouncil/common";var{Ss58Addr:Ks}=pi;function hi(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Ln(t,e){let n=t.getAssetId(e);return typeof n=="string"?hi(n):n}function qs(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Ln(o.chain,n);return new Ws({abi:Os.PolkadotXcm,address:Us.PolkadotXcm,args:[s.chain.parachainId,Ks.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Ln(o.chain,n),r=Ln(o.chain,o.destinationFeeBalance),c=fi.toBigInt(s.fee.amount,s.fee.decimals);return new Ws({abi:Os.PolkadotXcm,address:Us.PolkadotXcm,args:[s.chain.parachainId,Ks.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Ci,Abi as Zs,ContractConfig as eo,Snowbridge as to}from"@galacticcouncil/xc-core";import{XcmV5Junctions as ki,XcmV5Junction as vi,XcmVersionedXcm as Ei,XcmVersionedLocation as Ti}from"@galacticcouncil/descriptors";import{Blake2256 as Fi}from"@polkadot-api/substrate-bindings";import{toHex as On}from"@polkadot-api/utils";import{encodeAbiParameters as Si}from"viem";import{codec as yi}from"@galacticcouncil/xc-core";var tn=null;async function js(){if(tn)return tn;let t=await yi.getHubCodecs();return tn={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},tn}import{multiloc as gi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as xe,XcmV5AssetFilter as Q,XcmV5Instruction as P,XcmV5Junctions as pt,XcmV5Junction as Ke,XcmV5NetworkId as Hn,XcmV5WildAsset as Ue,XcmVersionedXcm as xi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Ai}from"@polkadot-api/substrate-bindings";import{toHex as wi}from"@polkadot-api/utils";import{XcmV3Junctions as bi}from"@galacticcouncil/descriptors";var j=340282366920938463463374607431768211455n,Oe="0x0000000000000000000000000000000000000000000000000000000000000000",W={parents:1,interior:bi.Here()},zs=0,lt=1e3,nn=1002,De=1,Et="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",$s="0x0000000000000000000000000000000000000000000000000000000000000000",Js="0x0000000000000000000000000000000000000000";var Vn="0x0000000000000000000000000000000000000000",Mt=t=>({parents:2,interior:pt.X1(Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(t)})))}),Nn=(t,e)=>({parents:2,interior:pt.X2([Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(t)})),Ke.AccountKey20({key:e,network:void 0})])});function Ys(t,e){let n=Mt(t),s=Nn(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[P.ReserveAssetDeposited([{id:n,fun:xe.Fungible(o)},{id:s,fun:xe.Fungible(o)}]),P.ExchangeAsset({give:Q.Wild(Ue.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:W,fun:xe.Fungible(a)}],maximal:!1}),P.PayFees({asset:{id:W,fun:xe.Fungible(a)}})],c=Mn({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function Mn(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Mt(e),m=s===Vn?i:Nn(e,s),u=o.length===42&&o.startsWith("0x")?Ke.AccountKey20({key:o,network:void 0}):Ke.AccountId32({id:o,network:void 0}),l={parents:0,interior:pt.X1(u)};return[P.SetAppendix([P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l})]),P.ExchangeAsset({give:Q.Wild(Ue.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:W,fun:xe.Fungible(r)}],maximal:!1}),P.InitiateTransfer({destination:{parents:1,interior:pt.X1(Ke.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:Q.Definite([{id:W,fun:xe.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:Q.Definite([{id:m,fun:xe.Fungible(a)}])}],remote_xcm:[P.DepositAsset({assets:Q.Wild(Ue.AllCounted(3)),beneficiary:l}),P.SetTopic(c)]}),P.RefundSurplus(),P.DepositAsset({assets:Q.Wild(Ue.All()),beneficiary:l}),P.SetTopic(c)]}function Gn(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,d=Mt(De),u=e===Vn?d:Nn(De,e),l={parents:0,interior:pt.X1(Ke.AccountId32({id:n,network:void 0}))},f={parents:0,interior:pt.X1(Ke.AccountKey20({key:s,network:void 0}))},g={parents:2,interior:pt.X1(Ke.GlobalConsensus(Hn.Ethereum({chain_id:BigInt(De)})))},A=[P.DepositAsset({assets:Q.Wild(Ue.AllCounted(3)),beneficiary:f}),P.SetTopic(m)],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:Vn,g=r.feeBreakdown,A=g.sourceExecutionFee??0n,S=g.dotRemoteFee??0n,v=g.dotToEtherSwapAmount??0n,I=g.etherFeeAmount??0n,G=Gn({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()}`),_=On(Fi(I)),G=Mn({ethChainId:De,destinationParaId:i.parachainId,tokenAddress:l?Bi:u,beneficiaryHex:v,tokenAmount:n,hydrationDotFee:A,topic:_}),J=await js(),w=On(J.message.enc(Ei.V5(G))),ve=[];l||ve.push(Si([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,n]));let st=J.location.enc(Ti.V5({parents:0,interior:ki.X1(vi.AccountId32({id:v,network:void 0}))})),$e=On(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}}})})}}},Wn=()=>({transact:o0});import{ExtrinsicConfig as gt}from"@galacticcouncil/xc-core";import{big as un}from"@galacticcouncil/common";import{multiloc as Xo,ChainEcosystem as ts}from"@galacticcouncil/xc-core";import{XcmV3Junctions as Z,XcmV3Junction as Tt,XcmV3JunctionNetworkId as Bo,XcmV3MultiassetFungibility as ft,XcmV4Instruction as R,XcmV4AssetAssetFilter as ht,XcmV4AssetWildAsset as yt,XcmV3WeightLimit as mn,XcmV2MultiassetWildFungibility as S0,XcmV2OriginKind as B0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as g0,XcmV3MultiassetFungibility as Kn,XcmV3WeightLimit as x0,XcmV4AssetAssetFilter as A0,XcmV4AssetWildAsset as w0,XcmV4Instruction as Kt}from"@galacticcouncil/descriptors";import{acc as a0}from"@galacticcouncil/common";import{XcmV3Junction as xo}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as r0}from"@polkadot-api/substrate-bindings";import{toHex as i0}from"@polkadot-api/utils";function O(t){if(t.length===42&&t.startsWith("0x"))return xo.AccountKey20({key:t,network:void 0});let n=r0(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return xo.AccountId32({id:i0(n.publicKey),network:void 0})}function Gt(t,e,n){return a0.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}import{multiloc as Ao}from"@galacticcouncil/xc-core";function wo(t,e){let n=Ao.findNestedKey(t,"GeneralIndex"),s=Ao.findNestedKey(e,"GeneralIndex"),o=n&&n.GeneralIndex,a=s&&s.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function V(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var an={};Ut(an,{ETHER_TOKEN_ADDRESS:()=>Un,erc20Location:()=>u0,erc20LocationReanchored:()=>d0,ethereumLocation:()=>ko,parachainLocation:()=>m0});import{XcmV3Junctions as sn,XcmV3Junction as on,XcmV3JunctionNetworkId as c0}from"@galacticcouncil/descriptors";var Un="0x0000000000000000000000000000000000000000",Co=t=>on.GlobalConsensus(c0.Ethereum({chain_id:BigInt(t)}));function ko(t){return{parents:2,interior:sn.X1(Co(t))}}function m0(t){return{parents:1,interior:sn.X1(on.Parachain(t))}}function u0(t,e){return e===Un?ko(t):{parents:2,interior:sn.X2([Co(t),on.AccountKey20({key:e})])}}function d0(t){return t===Un?{parents:0,interior:{type:"Here"}}:{parents:0,interior:sn.X1(on.AccountKey20({key:t}))}}import{encodeLocation as vo}from"@galacticcouncil/common";import{multiloc as l0}from"@galacticcouncil/xc-core";function M(t,e){return p0(e)>=4?vo(t):f0(t)}function p0(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function f0(t){return{type:"Concrete",value:vo(t)}}var h0=1e3;function y0(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function b0(t){if(t)return y0(t)?h0:l0.findParachain(t)}function Eo(t,e,n,s){let o=e.getAssetXcmLocation(t),a=b0(o),r=s?.parachainId??n.parachainId;if(a&&r!==a)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${s.name} (${s.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function rn(t,e){let n="V4",s=M(V(e,t),n),o=Oe;return[Kt.ReserveAssetDeposited([{id:W,fun:Kn.Fungible(j)},{id:s,fun:Kn.Fungible(j)}]),Kt.ClearOrigin(),Kt.BuyExecution({fees:{id:W,fun:Kn.Fungible(j)},weight_limit:x0.Unlimited()}),Kt.DepositAsset({assets:A0.Wild(w0.AllCounted(2)),beneficiary:{parents:0,interior:g0.X1(O(Et))}}),Kt.SetTopic(o)]}import{XcmV4Instruction as qn,XcmV3MultiassetFungibility as jn,XcmV3WeightLimit as C0}from"@galacticcouncil/descriptors";function zn(t,e){let n="V4",s=M(V(e,t),n),o=cn("V4",O(Js),O(Et),s,Oe);return[qn.WithdrawAsset([{id:W,fun:jn.Fungible(j)},{id:s,fun:jn.Fungible(j)}]),qn.ClearOrigin(),qn.BuyExecution({fees:{id:W,fun:jn.Fungible(j)},weight_limit:C0.Unlimited()}),...o.value]}import{XcmV3Junctions as $n,XcmV3Junction as k0,XcmV3MultiassetFungibility as qt,XcmV3WeightLimit as Jn,XcmV4AssetAssetFilter as Yn,XcmV4AssetWildAsset as Qn,XcmV4Instruction as Ie}from"@galacticcouncil/descriptors";function To(t,e){let n="V4",s=M(V(e,t),n),o=Oe;return[Ie.WithdrawAsset([{id:s,fun:qt.Fungible(j)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:s,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositAsset({assets:Yn.Wild(Qn.AllCounted(1)),beneficiary:{parents:0,interior:$n.X1(O(Et))}}),Ie.SetTopic(o)]}function Zn(t,e){let n="V4",s=M(V(e,t),n);return[Ie.BuyExecution({fees:{id:s,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositAsset({assets:Yn.Wild(Qn.AllCounted(1)),beneficiary:{parents:0,interior:$n.X1(O(Et))}})]}function Fo(t,e,n){let s="V4",o=M(V(e,t),s),a=Oe,r=Zn(t,n);return[Ie.WithdrawAsset([{id:o,fun:qt.Fungible(j)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:o,fun:qt.Fungible(j)},weight_limit:Jn.Unlimited()}),Ie.DepositReserveAsset({assets:Yn.Wild(Qn.AllCounted(1)),dest:{parents:1,interior:$n.X1(k0.Parachain(n.parachainId))},xcm:r}),Ie.SetTopic(a)]}import{XcmV3MultiassetFungibility as es,XcmV5AssetFilter as v0,XcmV5Instruction as Ot,XcmV5Junctions as E0,XcmV5Junction as T0,XcmV5WildAsset as F0}from"@galacticcouncil/descriptors";function So(t,e){let n="V5",s=M(V(e,t),n),o={parents:0,interior:E0.X1(T0.AccountId32({id:$s,network:void 0}))};return[Ot.ReserveAssetDeposited([{id:W,fun:es.Fungible(j)}]),Ot.PayFees({asset:{id:W,fun:es.Fungible(j)}}),Ot.ReserveAssetDeposited([{id:s,fun:es.Fungible(j)}]),Ot.ClearOrigin(),Ot.DepositAsset({assets:v0.Wild(F0.AllCounted(3)),beneficiary:o}),Ot.SetTopic(Oe)]}var Po=[ts.Polkadot,ts.Kusama],P0={parents:1,interior:Z.X1(Tt.Parachain(1e3))},X0=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},_o=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Po.includes(t.ecosystem)&&Po.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Do=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},je=(t,e,n)=>{if(_o(e,n))return{type:t,value:ns(n.ecosystem,n.parachainId)};if(n.parachainId===zs)return{type:t,value:{parents:1,interior:Z.Here()}};let s=n.key==="ethereum"?lt:n.parachainId;return{type:t,value:{parents:1,interior:Z.X1(Tt.Parachain(s))}}},_0=t=>t===ts.Kusama?Bo.Kusama():Bo.Polkadot(),ns=(t,e)=>({parents:2,interior:Z.X2([Tt.GlobalConsensus(_0(t)),Tt.Parachain(e)])}),Io=(t,e,n,s)=>{if(_o(e,n)){if(e.parachainId!==lt){let o=Xo.findGlobalConsensus(V(e,s)),a=typeof o=="string"&&o===n.ecosystem;return{dest:{type:t,value:{parents:1,interior:Z.X1(Tt.Parachain(lt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(n.parachainId!==lt)return{dest:{type:t,value:ns(n.ecosystem,lt)},mode:"onward"}}},Ft=(t,e)=>({type:t,value:{parents:0,interior:Z.X1(e)}}),ss=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:X0(n)?P0:n}}:{type:e},bt=(t,e)=>({id:t,fun:ft.Fungible(e)}),Ro=(t,e,n)=>({type:t,value:[R.DepositAsset({assets:ht.Wild(yt.AllCounted(n)),beneficiary:{parents:0,interior:Z.X1(e)}})]}),cn=(t,e,n,s,o)=>{let a=o;return{type:t,value:[R.SetAppendix([R.DepositAsset({assets:ht.Wild(yt.All()),beneficiary:{parents:0,interior:Z.X1(n)}})]),R.InitiateReserveWithdraw({assets:ht.Wild(yt.AllOf({id:s,fun:S0.Fungible()})),reserve:an.ethereumLocation(De),xcm:[R.BuyExecution({fees:{id:D0(s),fun:ft.Fungible(1n)},weight_limit:mn.Unlimited()}),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}}),R.SetTopic(a)]}),R.SetTopic(a)]}},Lo=(t,e,n,s,o,a)=>{let r=s==="onward"?{parents:1,interior:Z.X1(Tt.Parachain(n.parachainId))}:ns(n.ecosystem,n.parachainId),c={parents:0,interior:Z.X1(e)},i=ht.Wild(yt.AllCounted(1)),m=[R.BuyExecution({fees:{id:o,fun:ft.Fungible(a)},weight_limit:mn.Unlimited()}),R.DepositAsset({assets:i,beneficiary:c})],d=s==="bridge-withdraw"?R.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):R.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[R.SetAppendix([R.DepositAsset({assets:ht.Wild(yt.All()),beneficiary:c})]),d]}},D0=t=>{let e=Xo.findNestedKey(t,"key");return e?{parents:0,interior:Z.X1(Tt.AccountKey20({key:e.key}))}:{parents:0,interior:Z.Here()}},Ho=(t,e,n,s,o,a)=>({type:t,value:[R.WithdrawAsset([{id:n,fun:ft.Fungible(s)}]),R.BuyExecution({fees:{id:n,fun:ft.Fungible(s)},weight_limit:mn.Unlimited()}),R.Transact({origin_kind:B0.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),R.RefundSurplus(),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}})]}),Vo=(t,e,n,s,o,a)=>({type:t,value:[R.WithdrawAsset([{id:n,fun:ft.Fungible(o)}]),R.BuyExecution({fees:{id:n,fun:ft.Fungible(o)},weight_limit:mn.Unlimited()}),R.TransferAsset({assets:[{id:n,fun:ft.Fungible(s)}],beneficiary:{parents:0,interior:Z.X1(a)}}),R.RefundSurplus(),R.DepositAsset({assets:ht.Wild(yt.AllCounted(1)),beneficiary:{parents:0,interior:Z.X1(e)}})]});var ee="PolkadotXcm",I0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=O(t),r=o.chain,c=s.chain,i="V4",m=V(r,n),d=V(r,s.fee),u=M(m,i),l=M(d,i),f=bt(u,e),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=ss(m,v,I),Bn={type:m,value:w?I:_},Pn=ss(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 os=()=>({limitedReserveTransferAssets:I0,limitedTeleportAssets:R0,reserveTransferAssets:L0,transferAssets:H0,transferAssetsUsingTypeAndThen:V0,execute:M0,send:N0});import{ExtrinsicConfig as O0}from"@galacticcouncil/xc-core";import{encodeAssetId as W0}from"@galacticcouncil/common";import{XcmV3Junctions as No,XcmV3Junction as G0}from"@galacticcouncil/descriptors";var Mo=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:No.X1(n)}}:{type:t,value:{parents:1,interior:No.X2([G0.Parachain(e.parachainId),n])}};var Go="XTokens",U0=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:o,source:a})=>{let r=a.chain,c=s.chain,i="V3",m=c.usesCexForwarding?Gt(r,o,c):t,d=O(m),u=r.getAssetId(n),l=W0(u),f="transfer";return new O0({module:Go,func:f,getTx:g=>g.getUnsafeApi().tx[Go][f]({currency_id:l,amount:e,dest:Mo(i,c,d),dest_weight_limit:{type:"Unlimited"}})})}}),as=()=>({transfer:U0});function p(){return{assetConversion:uo,assets:lo,balances:fo,ethereumXcm:Wn,polkadotXcm:os,router:ho,utility:bo,xTokens:as}}function xt(t,e){return{prior:function(n){return{build:async s=>t(s)?p().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?p().utility().batchAll([e,...n]).build(s):p().utility().batchAll([...n]).build(s)}}}}import{Abi as Yo,Snowbridge as tc,Basejump as nc}from"@galacticcouncil/xc-core";var Oo=80000n,Wo=120000n,Uo=100000n,Ko=2000000n,rs=15000000000000n;var Jo={};Ut(Jo,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>zo,AssethubClient:()=>ke,BaseClient:()=>Re,HydrationClient:()=>te,getAllAssetDepositLimits:()=>cs,getAssetDepositLimit:()=>is,getGlobalWithdrawLimit:()=>ms});import{encodeLocation as qo}from"@galacticcouncil/common";import{hub as K0,XcmVersionedAssetId as jo}from"@galacticcouncil/descriptors";var Re=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??K0}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,jo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,jo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as dn,XcmV5Junction as q0,XcmVersionedLocation as j0,XcmVersionedXcm as z0,XcmVersionedAssetId as $0}from"@galacticcouncil/descriptors";import{encodeLocation as J0}from"@galacticcouncil/common";import{Twox128 as Y0,u128 as Q0}from"@polkadot-api/substrate-bindings";import{toHex as Z0}from"@polkadot-api/utils";var ke=class extends Re{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),o=J0(s);if(n===0)return!0;let a=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(n));return a&&a.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(s),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,n){let s=new TextEncoder().encode(e),o=Z0(Y0(s)),a=await this.client._request("state_getStorage",[o]);if(!a)return n;let r=Q0.dec(a);return r===0n?n:r}async calculateDeliveryFee(e,n){let s=j0.V5({parents:1,interior:dn.X1(q0.Parachain(n))}),o=$0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,z0.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,n){let s={parents:1,interior:dn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};import{hydration as ec}from"@galacticcouncil/descriptors";var zo=14400;function $o(t,e,n,s,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,d,u,l;n&&(n.type==="Locked"?(d=n.value,m=o<n.value):(u=n.value[0],l=n.value[1]));let f=s?.type==="Local"?"Local":"External",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 is(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),n]);return $o(e,s,o,a,r,c)}async function cs(t){let[e,n,s,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(n.map(u=>[u.keyArgs[0],u.value])),i=new Map(s.map(u=>[u.keyArgs[0],u.value])),m=new Map(r.map(u=>[u.keyArgs[0],u.value])),d=new Map;for(let u of e){let l=u.keyArgs[0],f=u.value;if(f?.xcm_rate_limit==null)continue;let 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 ms(t){let[e,n,s,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=s??void 0,r=a!==void 0&&o<a,[c,i]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:d}=e,u=c;if(!r&&d>0n){let f=o>i?o-i:0n;if(f>0n){let 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 is(this.api(),n)}getAllAssetDepositLimits(){return cs(this.api())}getGlobalWithdrawLimit(){return ms(this.api())}};function sc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:n})=>{let s=n,o=new te(s),a=new ke(t.hub),r=rn(e,s),c=So(e,s),i=Mt(De),m=250000000n,d=Ys(De,s.parachainId),[u,l,f,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<rs*2n?rs*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=zn(e,a),[d,u,l]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,nn),c.calculateDestinationFee(m,n)]),f=await r.evmClient.getProvider().getGasPrice(),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=Gn({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:Oe}),J=q(await _.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=zn(e,o),c=rn(e,o),[i,m,d,u,l]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,nn),a.calculateDestinationFee(r,n),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,n)]);return{amount:i+m+q(d,25n)+u+q(l,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:d,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:l}}}})}}function oc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let o=n,a=s,r=t?.reserve;if(Eo(e,o,a,r),r){let l=new Re(a),f=new Re(r),g=Zn(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 us}from"@mysten/sui/utils";import{encoding as pc}from"@wormhole-foundation/sdk-base";var fc=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,c=a.chain,i=dc.fromChain(r,s),m=Qo.fromChain(r),d=Qo.fromChain(c),u=r.client,l=e;c instanceof mc&&(l=await c.getDerivatedAddress(e));let f=pc.hex.decode(d.normalizeAddress(l)),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(us)]});let[Pn]=w.moveCall({target:`${_}::state::create_transceiver_message`,typeArguments:[`${G}::wormhole_transceiver::TransceiverAuth`,v],arguments:[w.object(A),Bn,w.object(us)]}),[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(us)]});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 ds(){return{Wormhole:ea}}import{EvmParachain as hc,Ntt as yc,ProgramConfig as bc,SolanaBalanceType as gc,Wormhole as ta}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as xc}from"@solana/spl-token";import{Keypair as Ac,TransactionMessage as wc}from"@solana/web3.js";import{toChain as Cc}from"@wormhole-foundation/sdk-base";import{UniversalAddress as kc}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as vc}from"@wormhole-foundation/sdk-solana";import"@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 ls(){return{Wormhole:sa}}var aa={};Ut(aa,{Tag:()=>At});var At=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(At||{});function ia(t,e){return new ra({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ca(t,e){return new ra({source:{asset:t,fee:{asset:B},destinationFee:t},destination:{chain:h,asset:e,fee:{amount: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 ps}from"@galacticcouncil/xc-core";function wt(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ne(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:F().Snowbridge().calculateInboundFee({hub:T}),asset:B}},contract:Se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function se(t,e){return new ps({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount: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 fs}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 fs({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 fs({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 fs({source:{asset:t,fee:{asset:x,extra:St}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function fn(t){return 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,hs=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},ys=p().router().buy({slippage:30});function Ae(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:e,asset:t,fee:{amount: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(hs,ys).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function bs(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:Ge,asset:t,fee:{amount:e,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:n})})}function Le(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:0,asset:t}},contract:Se().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function z(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:F().Snowbridge().calculateOutboundFee({hub:T}),asset:x}},extrinsic:xt(hs,ys).prior(p().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function $(t,e,n){return new Bt({source:{asset:t,fee:oe()},destination:{chain:n,asset:e,fee:{amount:F().Snowbridge().calculateOutboundFeeV1({hub:T}),asset:x}},extrinsic:xt(hs,ys).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=[bs(E,.05,.005),bs(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 gs(t){return new Tm({source:{asset:t,fee:{asset:Ce}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:ls().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Sm=[gs(Ce),gs(Xe),gs(_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:ds().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 xs=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap()});var Vm=[new _a({source:{asset:b,fee:xs()},destination:{chain:Ge,asset:b,fee:{amount:F().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Nm=[new _a({source:{asset:E,fee:xs()},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:()=>ws,HydrationDex:()=>As});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,As=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 ws=class{chain;client;constructor(e){this.chain=e,this.client=new ke(this.chain)}async getCalldata(e,n,s,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(n),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Ma(o),Ma(a),s.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as 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 Cs=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{Cs 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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacticcouncil/xc-cfg",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Cross-chain hydradx & basilisk dapp configuration",
|
|
5
5
|
"author": "GalacticCouncil",
|
|
6
6
|
"repository": {
|
|
@@ -31,14 +31,10 @@
|
|
|
31
31
|
"test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest --silent"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@galacticcouncil/xc-core": "^2.
|
|
34
|
+
"@galacticcouncil/xc-core": "^2.1.0",
|
|
35
35
|
"@thi.ng/memoize": "^4.0.2"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@galacticcouncil/
|
|
39
|
-
"@galacticcouncil/descriptors": ">=2.2.0",
|
|
40
|
-
"@galacticcouncil/sdk-next": ">=1.5.0",
|
|
41
|
-
"polkadot-api": "^2.1.7",
|
|
42
|
-
"viem": "^2.38.3"
|
|
38
|
+
"@galacticcouncil/sdk-next": ">=1.5.0"
|
|
43
39
|
}
|
|
44
40
|
}
|