@galacticcouncil/xc-cfg 2.2.0 → 2.3.0-pr349-45f8efb

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