@solana/client 1.4.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -112,6 +112,34 @@ const signature = await usdc.sendTransfer({
112
112
  console.log(signature.toString());
113
113
  ```
114
114
 
115
+ ### Token 2022 support
116
+
117
+ Token 2022 mints are supported via the `tokenProgram` option:
118
+
119
+ ```ts
120
+ // Auto-detect Token or Token 2022 (recommended)
121
+ const token = client.splToken({
122
+ mint: "2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo", // PYUSD
123
+ tokenProgram: "auto",
124
+ });
125
+
126
+ // Or explicitly specify Token 2022 program
127
+ import { TOKEN_2022_PROGRAM_ADDRESS } from "@solana/client";
128
+
129
+ const token2022 = client.splToken({
130
+ mint: mintAddress,
131
+ tokenProgram: TOKEN_2022_PROGRAM_ADDRESS,
132
+ });
133
+
134
+ // Balance and transfers work the same way
135
+ const balance = await token.fetchBalance(wallet.session.account.address);
136
+ const signature = await token.sendTransfer({
137
+ amount: 10,
138
+ authority: wallet.session,
139
+ destinationOwner: recipientAddress,
140
+ });
141
+ ```
142
+
115
143
  ### Fetch address lookup tables
116
144
 
117
145
  ```ts
@@ -219,9 +247,37 @@ Notes:
219
247
  - Default moniker is `devnet` when nothing is provided; moniker becomes `custom` when you pass a raw `endpoint`.
220
248
  - `createClient`, `createDefaultClient` (`resolveClientConfig`), and `SolanaProvider` all use `resolveCluster` under the hood, so the moniker/endpoint behavior is consistent across entrypoints.
221
249
 
250
+ ## Wallet connector filtering
251
+
252
+ Use `filterByNames` with `autoDiscover()` to filter wallets by name without wallet-specific code:
253
+
254
+ ```ts
255
+ import { autoDiscover, filterByNames } from "@solana/client";
256
+
257
+ // Only show Phantom and Solflare
258
+ const connectors = autoDiscover({
259
+ filter: filterByNames("phantom", "solflare"),
260
+ });
261
+
262
+ const client = createClient({
263
+ cluster: "devnet",
264
+ walletConnectors: connectors,
265
+ });
266
+ ```
267
+
268
+ This approach follows Wallet Standard's wallet-agnostic discovery pattern while still allowing you to curate which wallets appear in your app.
269
+
270
+ You can also write custom filter functions:
271
+
272
+ ```ts
273
+ const connectors = autoDiscover({
274
+ filter: (wallet) => wallet.name.toLowerCase().includes("phantom"),
275
+ });
276
+ ```
277
+
222
278
  ## Notes and defaults
223
279
 
224
- - Wallet connectors: `autoDiscover()` picks up Wallet Standard injectables; compose `phantom()`, `solflare()`, `backpack()`, or `injected()` when you need explicit control.
280
+ - Wallet connectors: `autoDiscover()` picks up Wallet Standard injectables; use `filterByNames()` to filter by name, or compose `phantom()`, `solflare()`, `backpack()`, etc. when you need explicit control.
225
281
  - Store: built on Zustand; pass `createStore` to `createClient` for custom persistence or server-side stores. `serializeSolanaState` / `deserializeSolanaState` help save and restore cluster + wallet metadata.
226
282
  - Actions: `fetchAccount`, `fetchBalance`, `fetchLookupTable`, `fetchLookupTables`, `fetchNonceAccount`, `setCluster`, `requestAirdrop`, `sendTransaction`, and wallet connect/disconnect keep the store in sync.
227
283
  - Watchers: `watchAccount`, `watchBalance`, and `watchSignature` stream updates into the store and return an `abort()` handle for cleanup.
@@ -235,6 +291,7 @@ Notes:
235
291
 
236
292
  ## More resources
237
293
 
294
+ - [Documentation](https://www.framework-kit.com/) — full guides and API reference
238
295
  - Playground: `examples/vite-react` (run with `pnpm install && pnpm dev`).
239
296
  - Next.js reference app: `examples/nextjs`.
240
297
  - Client APIs live in `src/actions.ts`, `src/watchers`, and `src/features/*` for helper internals.
@@ -1,3 +1,3 @@
1
- import {address,createSolanaRpc,createSolanaRpcSubscriptions,getBase64EncodedWireTransaction,compileTransaction,partiallySignTransactionMessageWithSigners,appendTransactionMessageInstruction,setTransactionMessageLifetimeUsingBlockhash,isTransactionSendingSigner,getMessagePackerInstructionPlanFromInstructions,pipe,createTransactionMessage,setTransactionMessageFeePayerSigner,setTransactionMessageFeePayer,signature,AccountRole,singleTransactionPlan,signAndSendTransactionMessageWithSigners,createTransactionPlanExecutor,signTransactionMessageWithSigners,isSolanaError,SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED,generateKeyPairSigner,appendTransactionMessageInstructions,createTransactionPlanner,signatureBytes,isTransactionPartialSigner,SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED,isInstructionForProgram,isInstructionWithData,SolanaError,SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR,isSome,airdropFactory}from'@solana/kit';import {createBlockHeightExceedencePromiseFactory,createRecentSignatureConfirmationPromiseFactory,waitForRecentTransactionConfirmation}from'@solana/transaction-confirmation';import {fetchAddressLookupTable,fetchAllAddressLookupTable}from'@solana-program/address-lookup-table';import {getTransferSolInstruction,getCreateAccountInstruction,fetchNonce}from'@solana-program/system';import {getBase58Decoder,getBase58Encoder}from'@solana/codecs-strings';import {TOKEN_PROGRAM_ADDRESS,fetchMint,findAssociatedTokenPda,getCreateAssociatedTokenInstruction,getTransferCheckedInstruction,getCreateAssociatedTokenIdempotentInstruction,getSyncNativeInstruction,getCloseAccountInstruction}from'@solana-program/token';import {getInitializeInstruction,getDelegateStakeInstruction,getDeactivateInstruction,getWithdrawInstruction}from'@solana-program/stake';import {getSetComputeUnitLimitInstruction,getSetComputeUnitPriceInstruction,COMPUTE_BUDGET_PROGRAM_ADDRESS,ComputeBudgetInstruction}from'@solana-program/compute-budget';import {createStore}from'zustand/vanilla';import {getWallets}from'@wallet-standard/app';import {StandardConnect,StandardEvents,StandardDisconnect}from'@wallet-standard/features';import {getTransactionDecoder,getTransactionEncoder}from'@solana/transactions';import {SolanaSignMessage,SolanaSignTransaction,SolanaSignAndSendTransaction}from'@solana/wallet-standard-features';var en=Object.defineProperty;var t=(e,n)=>en(e,"name",{value:n,configurable:true});function tn(e,n){return e.actions.connectWallet(n.connectorId,n.options)}t(tn,"connectWallet");function nn(e,n){return e.actions.disconnectWallet()}t(nn,"disconnectWallet");function rn(e,n){return e.actions.fetchAccount(n.address,n.commitment)}t(rn,"fetchAccount");function an(e,n){return e.actions.fetchBalance(n.address,n.commitment)}t(an,"fetchBalance");function on(e,n){return e.actions.fetchLookupTable(n.address,n.commitment)}t(on,"fetchLookupTable");function sn(e,n){return e.actions.fetchLookupTables(n.addresses,n.commitment)}t(sn,"fetchLookupTables");function cn(e,n){return e.actions.fetchNonceAccount(n.address,n.commitment)}t(cn,"fetchNonceAccount");function ln(e,n){return e.actions.requestAirdrop(n.address,n.lamports)}t(ln,"requestAirdrop");function pn(e,n){return e.actions.sendTransaction(n.transaction,n.commitment)}t(pn,"sendTransaction");function un(e,n){return e.actions.setCluster(n.endpoint,n.config)}t(un,"setCluster");function fe(e){if(typeof e!="object"||e===null)return e;let n=e;for(let r of Reflect.ownKeys(n)){let o=n[r];fe(o);}return Object.freeze(e)}t(fe,"deepFreeze");function L(){return Date.now()}t(L,"now");function Xe(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}t(Xe,"toErrorMessage");function Z(e){return e||(({data:n,level:r,message:o})=>{let s=n?{...n}:{};switch(r){case "error":console.error(`[react-core] ${o}`,s);break;case "warn":console.warn(`[react-core] ${o}`,s);break;case "info":console.info(`[react-core] ${o}`,s);break;default:console.debug(`[react-core] ${o}`,s);}})}t(Z,"createLogger");function B(e){return {error:e,message:Xe(e)}}t(B,"formatError");function yn(e){let n=new AbortController;if(!e)return n;if(e.aborted)return n.abort(e.reason),n;let r=t(()=>{n.abort(e.reason),e.removeEventListener("abort",r);},"onAbort");return e.addEventListener("abort",r,{once:true}),n}t(yn,"createChainedAbortController");function et(e){if(e!==void 0)return typeof e=="bigint"?e:BigInt(Math.floor(e))}t(et,"toBigint");var Tn=Object.freeze({encoding:"base64",replaceRecentBlockhash:true,sigVerify:false});function Q(e){let n=e.endpoint,r=e.websocketEndpoint??n,o=e.commitment??"confirmed",s=createSolanaRpc(n,e.rpcConfig),p=createSolanaRpcSubscriptions(r,e.rpcSubscriptionsConfig);async function S(C,g={}){let l=yn(g.abortSignal),i=g.commitment??o,a=getBase64EncodedWireTransaction(C),u=await s.sendTransaction(a,{encoding:"base64",maxRetries:et(g.maxRetries),minContextSlot:et(g.minContextSlot),preflightCommitment:i,skipPreflight:g.skipPreflight}).send({abortSignal:l.signal}),c=createBlockHeightExceedencePromiseFactory({rpc:s,rpcSubscriptions:p}),b=createRecentSignatureConfirmationPromiseFactory({rpc:s,rpcSubscriptions:p});return await waitForRecentTransactionConfirmation({abortSignal:l.signal,commitment:i,getBlockHeightExceedencePromise:c,getRecentSignatureConfirmationPromise:b,transaction:C}),u}t(S,"sendAndConfirmTransaction");async function T(C,g={}){let l=getBase64EncodedWireTransaction(C),i=g.config??{},a={...Tn,...i,commitment:i.commitment??g.commitment??o},u=a.sigVerify===true&&a.replaceRecentBlockhash!==false?{...a,replaceRecentBlockhash:false}:a;return s.simulateTransaction(l,u).send({abortSignal:g.abortSignal})}return t(T,"simulateTransaction"),{commitment:o,endpoint:n,rpc:s,rpcSubscriptions:p,sendAndConfirmTransaction:S,simulateTransaction:T,websocketEndpoint:r}}t(Q,"createSolanaRpcClient");function hn(e){return {autoconnect:false,commitment:e.commitment,endpoint:e.endpoint,lastConnectorId:null,lastPublicKey:null,version:1,websocketEndpoint:e.websocketEndpoint}}t(hn,"getInitialSerializableState");function Se(e,n){return n?{...e,commitment:n.commitment??e.commitment,endpoint:n.endpoint??e.endpoint,websocketEndpoint:n.websocketEndpoint??e.websocketEndpoint}:e}t(Se,"applySerializableState");function ge(e){return JSON.stringify(e)}t(ge,"serializeSolanaState");function bn(e){if(!e)return null;try{let n=JSON.parse(e);if(typeof n!="object"||n===null)return null;let r=n;return {autoconnect:r.autoconnect??!1,commitment:r.commitment,endpoint:r.endpoint,lastConnectorId:r.lastConnectorId??null,lastPublicKey:r.lastPublicKey??null,version:r.version??1,websocketEndpoint:r.websocketEndpoint}}catch{return null}}t(bn,"deserializeSolanaState");function tt(e){let n=e.store.getState(),r=n.wallet,o=r.autoConnect,s=null,p=null;return "connectorId"in r&&(s=r.connectorId??null,r.status==="connected"&&(p=r.session.account.address.toString())),{autoconnect:o??!!s,commitment:n.cluster.commitment,endpoint:n.cluster.endpoint,lastConnectorId:s,lastPublicKey:p,version:1,websocketEndpoint:n.cluster.websocketEndpoint}}t(tt,"getSerializableStateSnapshot");function Cn(e,n){let r=ge(tt(e));return n(JSON.parse(r)),e.store.subscribe(()=>{let s=tt(e),p=ge(s);p!==r&&(r=p,n(s));})}t(Cn,"subscribeSolanaState");function nt(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("ws://")||e.startsWith("wss://")?e:`https://${e}`}t(nt,"ensureHttpProtocol");var wn={devnet:{endpoint:"https://api.devnet.solana.com",websocketEndpoint:"wss://api.devnet.solana.com"},localhost:{endpoint:"http://127.0.0.1:8899",websocketEndpoint:"ws://127.0.0.1:8900"},localnet:{endpoint:"http://127.0.0.1:8899",websocketEndpoint:"ws://127.0.0.1:8900"},"mainnet-beta":{endpoint:"https://api.mainnet-beta.solana.com",websocketEndpoint:"wss://api.mainnet-beta.solana.com"},mainnet:{endpoint:"https://api.mainnet-beta.solana.com",websocketEndpoint:"wss://api.mainnet-beta.solana.com"},testnet:{endpoint:"https://api.testnet.solana.com",websocketEndpoint:"wss://api.testnet.solana.com"}};function Pn(e){return e.startsWith("https://")?e.replace("https://","wss://"):e.startsWith("http://")?e.replace("http://","ws://"):(e.startsWith("ws://")||e.startsWith("wss://"),e)}t(Pn,"inferWebsocketEndpoint");function ee(e){let n=e.moniker??(e.endpoint?"custom":"devnet"),r=n==="custom"?void 0:wn[n],o=nt(e.endpoint??r?.endpoint),s=e.websocketEndpoint?nt(e.websocketEndpoint):void 0,p=Pn(s??r?.websocketEndpoint??o);return {endpoint:o,moniker:n,websocketEndpoint:p}}t(ee,"resolveCluster");function ye(e){let n=new Map;for(let r of e)n.has(r.id)||n.set(r.id,r);return {all:[...n.values()],get(r){return n.get(r)}}}t(ye,"createWalletRegistry");function In(e,n){e.setState(r=>({...r,...n,lastUpdatedAt:L()}));}t(In,"updateState");function at({connectors:e,logger:n,runtime:r,store:o}){let s=n??Z(),p;function S(m){return m??o.getState().cluster.commitment}t(S,"getCommitment");async function T(m,h){try{let d=L();return await r.rpc.getLatestBlockhash({commitment:h}).send({abortSignal:AbortSignal.timeout(1e4)}),L()-d}catch(d){s({data:{endpoint:m,...B(d)},level:"warn",message:"cluster warmup failed"});return}}t(T,"warmupCluster");async function C(m,h){let d=h?.commitment??o.getState().cluster.commitment,y=h?.websocketEndpoint??m;o.setState(w=>({...w,cluster:{commitment:d,endpoint:m,status:{status:"connecting"},websocketEndpoint:y},lastUpdatedAt:L()}));try{let w=Q({commitment:d,endpoint:m,websocketEndpoint:y});r.rpc=w.rpc,r.rpcSubscriptions=w.rpcSubscriptions;let W=await T(m,d);o.setState(k=>({...k,cluster:{commitment:d,endpoint:m,status:{latencyMs:W,status:"ready"},websocketEndpoint:y},lastUpdatedAt:L()}));}catch(w){throw o.setState(W=>({...W,cluster:{commitment:d,endpoint:m,status:{error:w,status:"error"},websocketEndpoint:y},lastUpdatedAt:L()})),s({data:{endpoint:m,...B(w)},level:"error",message:"cluster setup failed"}),w}}t(C,"setCluster");async function g(m,h={}){p?.(),p=void 0;let d=e.get(m);if(!d)throw new Error(`No wallet connector registered for id "${m}".`);if(!d.isSupported())throw new Error(`Wallet connector "${m}" is not supported in this environment.`);let y=h.autoConnect??false;o.setState(w=>({...w,lastUpdatedAt:L(),wallet:{autoConnect:y,connectorId:m,status:"connecting"}}));try{let w=await d.connect(h);return o.setState(W=>({...W,lastUpdatedAt:L(),wallet:{autoConnect:y,connectorId:m,session:w,status:"connected"}})),w.onAccountsChanged&&(p=w.onAccountsChanged(W=>{W.length===0&&(p?.(),p=void 0,l());})),s({data:{address:w.account.address.toString(),connectorId:m},level:"info",message:"wallet connected"}),w}catch(w){throw o.setState(W=>({...W,lastUpdatedAt:L(),wallet:{autoConnect:y,connectorId:m,error:w,status:"error"}})),s({data:{connectorId:m,...B(w)},level:"error",message:"wallet connection failed"}),w}}t(g,"connectWallet");async function l(){let m=o.getState().wallet;if(m.status!=="disconnected"){p?.(),p=void 0;try{if(m.status==="connected"){await m.session.disconnect();let h=e.get(m.connectorId);h&&await h.disconnect();}else if(m.status==="connecting"){let h=e.get(m.connectorId);h&&await h.disconnect();}}finally{In(o,{wallet:{status:"disconnected"}});}}}t(l,"disconnectWallet");async function i(m,h){let d=m.toString();o.setState(y=>({...y,accounts:{...y.accounts,[d]:{address:m,data:y.accounts[d]?.data,error:void 0,executable:y.accounts[d]?.executable??null,fetching:true,lamports:y.accounts[d]?.lamports??null,lastFetchedAt:L(),owner:y.accounts[d]?.owner??null,slot:y.accounts[d]?.slot??null}},lastUpdatedAt:L()}));try{let y=await r.rpc.getBalance(m,{commitment:S(h)}).send({abortSignal:AbortSignal.timeout(1e4)}),w=y.value;return o.setState(W=>({...W,accounts:{...W.accounts,[d]:{address:m,data:W.accounts[d]?.data,error:void 0,executable:W.accounts[d]?.executable??null,fetching:!1,lamports:w,lastFetchedAt:L(),owner:W.accounts[d]?.owner??null,slot:y.context.slot}},lastUpdatedAt:L()})),w}catch(y){throw o.setState(w=>({...w,accounts:{...w.accounts,[d]:{address:m,data:w.accounts[d]?.data,error:y,executable:w.accounts[d]?.executable??null,fetching:false,lamports:w.accounts[d]?.lamports??null,lastFetchedAt:L(),owner:w.accounts[d]?.owner??null,slot:w.accounts[d]?.slot??null}},lastUpdatedAt:L()})),s({data:{address:d,...B(y)},level:"error",message:"balance fetch failed"}),y}}t(i,"fetchBalance");async function a(m,h){let d=m.toString();o.setState(y=>({...y,accounts:{...y.accounts,[d]:{address:m,data:y.accounts[d]?.data,error:void 0,executable:y.accounts[d]?.executable??null,fetching:true,lamports:y.accounts[d]?.lamports??null,lastFetchedAt:L(),owner:y.accounts[d]?.owner??null,slot:y.accounts[d]?.slot??null}},lastUpdatedAt:L()}));try{let y=await r.rpc.getAccountInfo(m,{commitment:S(h),encoding:"base64"}).send({abortSignal:AbortSignal.timeout(1e4)}),w=y.value,W=w?.lamports??null,k=w?.executable??null,A=w?.owner??null;return o.setState(x=>({...x,accounts:{...x.accounts,[d]:{address:m,data:w,error:void 0,executable:k,fetching:!1,lamports:W,lastFetchedAt:L(),owner:A,slot:y.context.slot}},lastUpdatedAt:L()})),o.getState().accounts[d]}catch(y){throw o.setState(w=>({...w,accounts:{...w.accounts,[d]:{address:m,data:w.accounts[d]?.data,error:y,executable:w.accounts[d]?.executable??null,fetching:false,lamports:w.accounts[d]?.lamports??null,lastFetchedAt:L(),owner:w.accounts[d]?.owner??null,slot:w.accounts[d]?.slot??null}},lastUpdatedAt:L()})),s({data:{address:d,...B(y)},level:"error",message:"account fetch failed"}),y}}t(a,"fetchAccount");async function u(m,h){let d=await fetchAddressLookupTable(r.rpc,m,{commitment:S(h)}),{addresses:y,authority:w,deactivationSlot:W,lastExtendedSlot:k,lastExtendedSlotStartIndex:A}=d.data;return {addresses:y,authority:isSome(w)?w.value:void 0,deactivationSlot:W,lastExtendedSlot:k,lastExtendedSlotStartIndex:A}}t(u,"fetchLookupTable");async function c(m,h){return m.length===0?[]:(await fetchAllAddressLookupTable(r.rpc,m,{commitment:S(h)})).map(({data:y})=>({addresses:y.addresses,authority:isSome(y.authority)?y.authority.value:void 0,deactivationSlot:y.deactivationSlot,lastExtendedSlot:y.lastExtendedSlot,lastExtendedSlotStartIndex:y.lastExtendedSlotStartIndex}))}t(c,"fetchLookupTables");async function b(m,h){let d=await fetchNonce(r.rpc,m,{commitment:S(h)});return {authority:d.data.authority,blockhash:d.data.blockhash}}t(b,"fetchNonceAccount");async function P(m,h){let d=S(h),y=new AbortController,w=await r.rpc.sendTransaction(getBase64EncodedWireTransaction(m),{encoding:"base64",preflightCommitment:d}).send({abortSignal:y.signal}),W=w.toString();o.setState(x=>({...x,lastUpdatedAt:L(),transactions:{...x.transactions,[W]:{lastUpdatedAt:L(),signature:w,status:"sending"}}}));let k=createBlockHeightExceedencePromiseFactory({rpc:r.rpc,rpcSubscriptions:r.rpcSubscriptions}),A=createRecentSignatureConfirmationPromiseFactory({rpc:r.rpc,rpcSubscriptions:r.rpcSubscriptions});try{return await waitForRecentTransactionConfirmation({abortSignal:y.signal,commitment:d,getBlockHeightExceedencePromise:k,getRecentSignatureConfirmationPromise:A,transaction:m}),o.setState(x=>({...x,lastUpdatedAt:L(),transactions:{...x.transactions,[W]:{lastUpdatedAt:L(),signature:w,status:"confirmed"}}})),w}catch(x){throw o.setState(v=>({...v,lastUpdatedAt:L(),transactions:{...v.transactions,[W]:{error:x,lastUpdatedAt:L(),signature:w,status:"failed"}}})),s({data:{signature:W,...B(x)},level:"error",message:"transaction failed to confirm"}),x}}t(P,"sendTransaction");async function f(m,h){try{let y=await airdropFactory({rpc:r.rpc,rpcSubscriptions:r.rpcSubscriptions})({commitment:S("confirmed"),lamports:h,recipientAddress:m});return s({data:{address:m.toString(),lamports:h.toString(),signature:y},level:"info",message:"airdrop requested"}),y}catch(d){throw s({data:{address:m.toString(),lamports:h.toString(),...B(d)},level:"error",message:"airdrop request failed"}),d}}return t(f,"requestAirdrop"),{connectWallet:g,disconnectWallet:l,fetchAccount:a,fetchBalance:i,fetchLookupTable:u,fetchLookupTables:c,fetchNonceAccount:b,requestAirdrop:f,sendTransaction:P,setCluster:C}}t(at,"createActions");var Un=10n;function Te(e){return ae(e,"exponent"),Un**BigInt(e)}t(Te,"pow10");function D(e,n="value"){if(e<0n)throw new RangeError(`${n} must be non-negative`)}t(D,"assertNonNegative");function ae(e,n="decimals"){if(!Number.isInteger(e)||e<0||e>38)throw new RangeError(`${n} must be an integer between 0 and 38`)}t(ae,"assertDecimals");function q(e,n="value"){if(typeof e=="bigint")return e;if(typeof e=="number"){if(!Number.isFinite(e)||!Number.isInteger(e))throw new RangeError(`${n} must be a finite integer when provided as a number`);if(!Number.isSafeInteger(e))throw new RangeError(`${n} must be within the safe integer range when provided as a number`);return BigInt(e)}let r=e.trim(),o=/^[-+]?\d+$/.exec(r);if(!o)throw new SyntaxError(`${n} must be an integer string`);return BigInt(o[0])}t(q,"toBigint");function he(e,n,r="result"){let o=e+n;return D(o,r),o}t(he,"checkedAdd");function be(e,n,r="result"){let o=e-n;return D(o,r),o}t(be,"checkedSubtract");function Mn(e,n,r="result"){let o=e*n;return D(o,r),o}t(Mn,"checkedMultiply");function Bn(e,n,r="result"){if(n===0n)throw new RangeError("divisor must be non-zero");let o=e/n;return D(o,r),o}t(Bn,"checkedDivide");function En(e,n,r){if(n<=0n)throw new RangeError("divisor must be positive");let o=e/n,s=e%n;if(s===0n)return o;switch(r){case "ceil":return o+1n;case "round":return s*2n>=n?o+1n:o;default:return o}}t(En,"divideWithRounding");function Hn(e,n){let r=q(e,"numerator"),o=q(n,"denominator");if(o<=0n)throw new RangeError("denominator must be positive");return D(r,"numerator"),Object.freeze({denominator:o,numerator:r})}t(Hn,"createRatio");function Ce(e,n,r={}){D(e,"amount");let o=e*n.numerator,s=r.rounding??"floor";return En(o,n.denominator,s)}t(Ce,"applyRatio");var Dn=/^\d+(?:\.\d+)?$/;function Fn(e,n,r){if(!Number.isFinite(e))throw new RangeError(`${r} must be a finite number`);if(Number.isInteger(e))return e.toString(10);let o=e.toString(10);if(o.includes("e")||o.includes("E"))throw new RangeError(`${r} cannot use exponential notation; provide a string instead`);let s=o.split(".");if(s[1]&&s[1].length>n+6)throw new RangeError(`${r} exceeds safe precision; provide a string instead`);return o}t(Fn,"normalizeNumberInput");function ot(e,n,r,o){let s=o.label??"value",p=o.rounding??"floor",S=e.replace(/_/g,"").trim();if(S==="")throw new SyntaxError(`${s} must not be empty`);if(!Dn.test(S))throw new SyntaxError(`${s} must be a non-negative decimal string`);let[T,C]=S.split("."),g=T||"0";D(BigInt(g),s);let l=BigInt(g)*r,i=C??"";if(n===0){if(i.length===0)return l;let c=/[1-9]/.test(i);return p==="ceil"&&c||p==="round"&&i[0]!==void 0&&i[0]>="5"?l+1n:l}let a=i.slice(0,n).padEnd(n,"0"),u=a===""?0n:BigInt(a);if(l+=u,i.length>n){let c=i.slice(n),b=/[1-9]/.test(c);if(p==="ceil"&&b)l+=1n;else if(p==="round"){let P=c[0];P!==void 0&&P>="5"&&(l+=1n);}}return l}t(ot,"decimalToBaseUnits");function _n(e,n,r,o){D(e,"amount");let s=o.minimumFractionDigits??0;if(s<0||s>n)throw new RangeError("minimumFractionDigits must be between 0 and the token decimals");let p=o.trimTrailingZeros??true;if(n===0)return e.toString();let S=e/r,T=(e%r).toString().padStart(n,"0");return p&&(T=T.replace(/0+$/,"")),T.length<s&&(T=T.padEnd(s,"0")),T.length===0?S.toString():`${S.toString()}.${T}`}t(_n,"formatBaseUnits");function te(e){ae(e,"decimals");let n=Te(e);function r(l,i){let a=q(l,i??"amount");return D(a,i??"amount"),a}t(r,"fromBaseUnits");function o(l,i={}){let a=i.label??"value";if(typeof l=="number"){if(Number.isInteger(l)){if(!Number.isSafeInteger(l))throw new RangeError(`${a} must be within the safe integer range when provided as a number`);return r(BigInt(l)*n,a)}if(e===0)throw new RangeError(`${a} cannot include fractional digits for a token with 0 decimals`);let u=Fn(l,e,a);return ot(u,e,n,i)}return ot(l,e,n,i)}t(o,"fromDecimal");function s(l,i={}){return _n(r(l),e,n,i)}t(s,"toDecimalString");function p(l,i){return he(r(l),r(i))}t(p,"add");function S(l,i){return be(r(l),r(i))}t(S,"subtract");function T(l,i,a){return Ce(r(l),i,a)}t(T,"multiplyByRatio");function C(l){return r(l)===0n}t(C,"isZero");function g(l,i){let a=r(l),u=r(i);return a>u?1:a<u?-1:0}return t(g,"compare"),Object.freeze({add:p,compare:g,decimals:e,fromBaseUnits:r,fromDecimal:o,isZero:C,multiplyByRatio:T,scale:n,subtract:S,toDecimalString:s})}t(te,"createTokenAmount");var F=te(9),Nn=F.scale,N=Object.freeze({add(e,n){return F.add(e,n)},compare(e,n){return F.compare(e,n)},decimals:F.decimals,fromLamports(e,n){return F.fromBaseUnits(e,n)},fromSol(e,n){return F.fromDecimal(e,n)},isZero(e){return F.isZero(e)},multiplyByRatio(e,n,r){return F.multiplyByRatio(e,n,r)},raw:F,scale:F.scale,subtract(e,n){return F.subtract(e,n)},toSolString(e,n){return F.toDecimalString(e,n)}});function we(e,n){return N.fromLamports(e,n)}t(we,"lamports");function zn(e,n){return N.fromSol(e,n)}t(zn,"lamportsFromSol");function Vn(e,n){return N.toSolString(e,n)}t(Vn,"lamportsToSolString");function z(e){return typeof e!="object"||e===null?false:"account"in e&&"connector"in e&&"disconnect"in e}t(z,"isWalletSession");function V(e,n={}){let{commitment:r}=n,o=e.account.address;if(e.signTransaction){let s=e.signTransaction.bind(e);return {mode:"partial",signer:Object.freeze({address:o,async modifyAndSignTransactions(S){let T=[];for(let C of S){let g=C,l=await s(g);if(!l.signatures[o])throw new Error("Wallet did not populate the expected fee payer signature.");let a=Object.freeze({...g,messageBytes:l.messageBytes,signatures:Object.freeze({...g.signatures,...l.signatures})});T.push(a);}return Object.freeze(T)},async signTransactions(S){let T=await this.modifyAndSignTransactions(S);return Object.freeze(T.map(C=>{let g=C.signatures[o];if(!g)throw new Error("Expected signer to produce a signature for the provided address.");return Object.freeze({[o]:g})}))}})}}if(e.sendTransaction){let s=getBase58Encoder(),p=e.sendTransaction.bind(e);return {mode:"send",signer:Object.freeze({address:o,async signAndSendTransactions(T){let C=[];for(let g of T){let l=await p(g,r?{commitment:r}:void 0),i=s.encode(l);C.push(signatureBytes(i));}return C}})}}throw new Error("Wallet session does not support signing or sending transactions.")}t(V,"createWalletTransactionSigner");function j(e){return isTransactionPartialSigner(e)?"partial":isTransactionSendingSigner(e)?"send":"partial"}t(j,"resolveSignerMode");function sr(e){return typeof e=="string"?address(e):e}t(sr,"ensureAddress");async function cr(e,n,r){if(r)return r;let{value:o}=await e.rpc.getLatestBlockhash({commitment:n}).send();return o}t(cr,"resolveLifetime");function lr(e,n){if(z(e)){let{signer:r,mode:o}=V(e,{commitment:n});return {mode:o,signer:r}}return {mode:j(e),signer:e}}t(lr,"resolveSigner");function pr(e){return N.fromLamports(e)}t(pr,"toLamportAmount");function Pe(e){async function n(s){let p=s.commitment,S=await cr(e,p,s.lifetime),{signer:T,mode:C}=lr(s.authority,p),g=sr(s.destination),l=pr(s.amount),i=pipe(createTransactionMessage({version:s.transactionVersion??0}),a=>setTransactionMessageFeePayer(T.address,a),a=>setTransactionMessageLifetimeUsingBlockhash(S,a),a=>appendTransactionMessageInstruction(getTransferSolInstruction({amount:l,destination:g,source:T}),a));return {commitment:p,lifetime:S,message:i,mode:C,signer:T,plan:singleTransactionPlan(i)}}t(n,"prepareTransfer");async function r(s,p={}){if(s.mode==="send"&&isTransactionSendingSigner(s.signer)){let l=await signAndSendTransactionMessageWithSigners(s.message,{abortSignal:p.abortSignal,minContextSlot:p.minContextSlot}),i=getBase58Decoder();return signature(i.decode(l))}let S=p.commitment??s.commitment,T=p.maxRetries===void 0?void 0:typeof p.maxRetries=="bigint"?p.maxRetries:BigInt(p.maxRetries),C=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(l,i={}){let a=await signTransactionMessageWithSigners(l,{abortSignal:i.abortSignal??p.abortSignal,minContextSlot:p.minContextSlot}),u=getBase64EncodedWireTransaction(a),c=await e.rpc.sendTransaction(u,{encoding:"base64",maxRetries:T,preflightCommitment:S,skipPreflight:p.skipPreflight}).send({abortSignal:i.abortSignal??p.abortSignal});return C=signature(c),{transaction:a}}})(s.plan??singleTransactionPlan(s.message),{abortSignal:p.abortSignal}),!C)throw new Error("Failed to resolve transaction signature.");return C}t(r,"sendPreparedTransfer");async function o(s,p){let S=await n(s);return await r(S,p)}return t(o,"sendTransfer"),{prepareTransfer:n,sendPreparedTransfer:r,sendTransfer:o}}t(Pe,"createSolTransferHelper");function K(e,n){if(e)return typeof e=="string"?address(e):e;if(!n)throw new Error("An address value was expected but not provided.");return n}t(K,"ensureAddress");async function Lr(e,n,r){if(r)return r;let{value:o}=await e.rpc.getLatestBlockhash({commitment:n}).send();return o}t(Lr,"resolveLifetime");function Or(e,n){if(z(e)){let{signer:r,mode:o}=V(e,{commitment:n});return {mode:o,signer:r}}return {mode:j(e),signer:e}}t(Or,"resolveSigner");function ke(e,n){let r=K(n.mint),o=K(n.tokenProgram,address(TOKEN_PROGRAM_ADDRESS)),s=n.decimals,p;async function S(u){return s!==void 0||(s=(await fetchMint(e.rpc,r,{commitment:u})).data.decimals),s}t(S,"resolveDecimals");async function T(u){if(p)return p;let c=await S(u);return p=te(c),p}t(T,"getTokenMath");async function C(u){let[c]=await findAssociatedTokenPda({mint:r,owner:K(u),tokenProgram:o});return c}t(C,"deriveAssociatedTokenAddress");async function g(u,c){let b=await C(u),P=await S(c);try{let{value:f}=await e.rpc.getTokenAccountBalance(b,{commitment:c}).send(),h=(await T(c)).fromBaseUnits(f.amount,"balance"),d=f.uiAmountString??f.amount;return {amount:h,ataAddress:b,decimals:P,exists:!0,uiAmount:d}}catch{return {amount:0n,ataAddress:b,decimals:P,exists:false,uiAmount:"0"}}}t(g,"fetchBalance");async function l(u){let c=u.commitment,b=await Lr(e,c,u.lifetime),{signer:P,mode:f}=Or(u.authority,c),m=K(u.sourceOwner,P.address),h=K(u.destinationOwner),d=K(u.sourceToken,await C(m)),y=K(u.destinationToken,await C(h)),w=await T(c),W=await S(c),k=u.amountInBaseUnits?w.fromBaseUnits(u.amount,"amount"):w.fromDecimal(u.amount,{label:"amount"}),A=[];if(u.ensureDestinationAta??true){let{value:v}=await e.rpc.getAccountInfo(y,{commitment:c,dataSlice:{length:0,offset:0},encoding:"base64"}).send();v||A.push(getCreateAssociatedTokenInstruction({ata:y,mint:r,owner:h,payer:P,tokenProgram:o}));}A.push(getTransferCheckedInstruction({amount:k,authority:P,decimals:W,destination:y,mint:r,source:d}));let x=pipe(createTransactionMessage({version:u.transactionVersion??0}),v=>setTransactionMessageFeePayer(P.address,v),v=>setTransactionMessageLifetimeUsingBlockhash(b,v));for(let v of A)x=appendTransactionMessageInstruction(v,x);return {amount:k,commitment:c,decimals:W,destinationAta:y,lifetime:b,message:x,mode:f,signer:P,sourceAta:d,plan:singleTransactionPlan(x)}}t(l,"prepareTransfer");async function i(u,c={}){if(u.mode==="send"&&isTransactionSendingSigner(u.signer)){let h=await signAndSendTransactionMessageWithSigners(u.message,{abortSignal:c.abortSignal,minContextSlot:c.minContextSlot}),d=getBase58Decoder();return signature(d.decode(h))}let b=c.commitment??u.commitment,P=c.maxRetries===void 0?void 0:typeof c.maxRetries=="bigint"?c.maxRetries:BigInt(c.maxRetries),f=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(h,d={}){let y=await signTransactionMessageWithSigners(h,{abortSignal:d.abortSignal??c.abortSignal,minContextSlot:c.minContextSlot}),w=getBase64EncodedWireTransaction(y),W=await e.rpc.sendTransaction(w,{encoding:"base64",maxRetries:P,preflightCommitment:b,skipPreflight:c.skipPreflight}).send({abortSignal:d.abortSignal??c.abortSignal});return f=signature(W),{transaction:y}}})(u.plan??singleTransactionPlan(u.message),{abortSignal:c.abortSignal}),!f)throw new Error("Failed to resolve transaction signature.");return f}t(i,"sendPreparedTransfer");async function a(u,c){let b=await l(u);try{return await i(b,c)}catch(P){if(isSolanaError(P,SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED)){let f=await l({...u,lifetime:void 0});return await i(f,c)}throw P}}return t(a,"sendTransfer"),{deriveAssociatedTokenAddress:C,fetchBalance:g,prepareTransfer:l,sendPreparedTransfer:i,sendTransfer:a}}t(ke,"createSplTokenHelper");var ut="Stake11111111111111111111111111111111111111",dt="SysvarC1ock11111111111111111111111111111111",mt="SysvarStakeHistory1111111111111111111111111",Dr="StakeConfig11111111111111111111111111111111",ft=200;function ie(e){return typeof e=="string"?address(e):e}t(ie,"ensureAddress");async function Ee(e,n,r){if(r)return r;let{value:o}=await e.rpc.getLatestBlockhash({commitment:n}).send();return o}t(Ee,"resolveLifetime");function He(e,n){if(z(e)){let{signer:r,mode:o}=V(e,{commitment:n});return {mode:o,signer:r}}return {mode:j(e),signer:e}}t(He,"resolveSigner");function gt(e){return N.fromLamports(e)}t(gt,"toLamportAmount");function De(e){async function n(i){let a=i.commitment,u=await Ee(e,a,i.lifetime),{signer:c,mode:b}=He(i.authority,a),P=ie(i.validatorId),f=gt(i.amount),h=await e.rpc.getMinimumBalanceForRentExemption(BigInt(ft)).send()+f,d=await generateKeyPairSigner(),y=getCreateAccountInstruction({payer:c,newAccount:d,lamports:h,space:BigInt(ft),programAddress:ut}),w=getInitializeInstruction({stake:d.address,arg0:{staker:c.address,withdrawer:c.address},arg1:{unixTimestamp:0n,epoch:0n,custodian:c.address}}),W=getDelegateStakeInstruction({stake:d.address,vote:P,stakeHistory:mt,unused:Dr,stakeAuthority:c}),k=pipe(createTransactionMessage({version:i.transactionVersion??0}),A=>setTransactionMessageFeePayer(c.address,A),A=>setTransactionMessageLifetimeUsingBlockhash(u,A),A=>appendTransactionMessageInstructions([y,w,W],A));return {commitment:a,lifetime:u,message:k,mode:b,signer:c,stakeAccount:d,plan:singleTransactionPlan(k)}}t(n,"prepareStake");async function r(i,a={}){if(i.mode==="send"&&isTransactionSendingSigner(i.signer)){let f=await signAndSendTransactionMessageWithSigners(i.message,{abortSignal:a.abortSignal,minContextSlot:a.minContextSlot}),m=getBase58Decoder();return signature(m.decode(f))}let u=a.commitment??i.commitment,c=a.maxRetries===void 0?void 0:typeof a.maxRetries=="bigint"?a.maxRetries:BigInt(a.maxRetries),b=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(f,m={}){let h=await signTransactionMessageWithSigners(f,{abortSignal:m.abortSignal??a.abortSignal,minContextSlot:a.minContextSlot}),d=getBase64EncodedWireTransaction(h),y=await e.rpc.sendTransaction(d,{encoding:"base64",maxRetries:c,preflightCommitment:u,skipPreflight:a.skipPreflight}).send({abortSignal:m.abortSignal??a.abortSignal});return b=signature(y),{transaction:h}}})(i.plan??singleTransactionPlan(i.message),{abortSignal:a.abortSignal}),!b)throw new Error("Failed to resolve transaction signature.");return b}t(r,"sendPreparedStake");async function o(i,a){let u=await n(i);return await r(u,a)}t(o,"sendStake");async function s(i){let a=i.commitment,u=await Ee(e,a,i.lifetime),{signer:c,mode:b}=He(i.authority,a),P=ie(i.stakeAccount),f=getDeactivateInstruction({stake:P,clockSysvar:dt,stakeAuthority:c}),m=pipe(createTransactionMessage({version:i.transactionVersion??0}),h=>setTransactionMessageFeePayer(c.address,h),h=>setTransactionMessageLifetimeUsingBlockhash(u,h),h=>appendTransactionMessageInstructions([f],h));return {commitment:a,lifetime:u,message:m,mode:b,signer:c,plan:singleTransactionPlan(m)}}t(s,"prepareUnstake");async function p(i,a={}){if(i.mode==="send"&&isTransactionSendingSigner(i.signer)){let f=await signAndSendTransactionMessageWithSigners(i.message,{abortSignal:a.abortSignal,minContextSlot:a.minContextSlot}),m=getBase58Decoder();return signature(m.decode(f))}let u=a.commitment??i.commitment,c=a.maxRetries===void 0?void 0:typeof a.maxRetries=="bigint"?a.maxRetries:BigInt(a.maxRetries),b=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(f,m={}){let h=await signTransactionMessageWithSigners(f,{abortSignal:m.abortSignal??a.abortSignal,minContextSlot:a.minContextSlot}),d=getBase64EncodedWireTransaction(h),y=await e.rpc.sendTransaction(d,{encoding:"base64",maxRetries:c,preflightCommitment:u,skipPreflight:a.skipPreflight}).send({abortSignal:m.abortSignal??a.abortSignal});return b=signature(y),{transaction:h}}})(i.plan),!b)throw new Error("Failed to resolve transaction signature.");return b}t(p,"sendPreparedUnstake");async function S(i,a){let u=await s(i);return await p(u,a)}t(S,"sendUnstake");async function T(i){let a=i.commitment,u=await Ee(e,a,i.lifetime),{signer:c,mode:b}=He(i.authority,a),P=ie(i.stakeAccount),f=ie(i.destination),m=gt(i.amount),h=getWithdrawInstruction({stake:P,recipient:f,clockSysvar:dt,stakeHistory:mt,withdrawAuthority:c,args:m}),d=pipe(createTransactionMessage({version:i.transactionVersion??0}),y=>setTransactionMessageFeePayer(c.address,y),y=>setTransactionMessageLifetimeUsingBlockhash(u,y),y=>appendTransactionMessageInstructions([h],y));return {commitment:a,lifetime:u,message:d,mode:b,signer:c,plan:singleTransactionPlan(d)}}t(T,"prepareWithdraw");async function C(i,a={}){if(i.mode==="send"&&isTransactionSendingSigner(i.signer)){let f=await signAndSendTransactionMessageWithSigners(i.message,{abortSignal:a.abortSignal,minContextSlot:a.minContextSlot}),m=getBase58Decoder();return signature(m.decode(f))}let u=a.commitment??i.commitment,c=a.maxRetries===void 0?void 0:typeof a.maxRetries=="bigint"?a.maxRetries:BigInt(a.maxRetries),b=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(f,m={}){let h=await signTransactionMessageWithSigners(f,{abortSignal:m.abortSignal??a.abortSignal,minContextSlot:a.minContextSlot}),d=getBase64EncodedWireTransaction(h),y=await e.rpc.sendTransaction(d,{encoding:"base64",maxRetries:c,preflightCommitment:u,skipPreflight:a.skipPreflight}).send({abortSignal:m.abortSignal??a.abortSignal});return b=signature(y),{transaction:h}}})(i.plan),!b)throw new Error("Failed to resolve transaction signature.");return b}t(C,"sendPreparedWithdraw");async function g(i,a){let u=await T(i);return await C(u,a)}t(g,"sendWithdraw");async function l(i,a){let u=typeof i=="string"?i:String(i),c=await e.rpc.getProgramAccounts(ut,{encoding:"jsonParsed",filters:[{memcmp:{offset:44n,bytes:u,encoding:"base58"}}]}).send();if(!a)return c;let b=typeof a=="string"?a:String(a);return c.filter(P=>{let f=P.account?.data;return f&&"parsed"in f?f.parsed?.info?.stake?.delegation?.voter===b:false})}return t(l,"getStakeAccounts"),{getStakeAccounts:l,prepareStake:n,prepareUnstake:s,prepareWithdraw:T,sendPreparedStake:r,sendPreparedUnstake:p,sendPreparedWithdraw:C,sendStake:o,sendUnstake:S,sendWithdraw:g}}t(De,"createStakeHelper");function X(e){return "messageBytes"in e?getBase64EncodedWireTransaction(e):getBase64EncodedWireTransaction(compileTransaction(e))}t(X,"transactionToBase64");async function Nr(e){if("messageBytes"in e)return X(e);let n=await partiallySignTransactionMessageWithSigners(e);return X(n)}t(Nr,"transactionToBase64WithSigners");var Kr=1.1,Tt=2e5,bt=14e5;function $r(e){return e.programAddress===COMPUTE_BUDGET_PROGRAM_ADDRESS&&e.data?.[0]===2}t($r,"isComputeUnitLimitInstruction");function Jr(e){let n=e;for(;isSolanaError(n);){if(isSolanaError(n,SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED))return true;n=n.cause;}return false}t(Jr,"didExceedComputeBudget");async function Gr(e,n){let r=n;if(!(n.lifetimeConstraint!==void 0)){let p=await e.getLatestBlockhash().send();r=setTransactionMessageLifetimeUsingBlockhash(p.value,n);}let s=X(r);try{let{value:p}=await e.simulateTransaction(s,{encoding:"base64",replaceRecentBlockhash:!1,sigVerify:!1}).send();return Number(p.unitsConsumed??0)||0}catch(p){if(Jr(p))return bt;throw p}}t(Gr,"estimateComputeUnits");async function ne(e){let n=e.computeUnitLimitMultiplier??Kr,r=e.blockhashReset!==false,o=e.computeUnitLimitReset??false,s=e.transaction,p=s.instructions.findIndex($r);if(p===-1||o){let T=await Gr(e.rpc,s),C=T?Math.ceil(T*n):Tt,g=Math.min(bt,Math.max(Tt,Math.max(1,C))),l=getSetComputeUnitLimitInstruction({units:g});if(p===-1)s=appendTransactionMessageInstruction(l,s);else {let i=[...s.instructions];i.splice(p,1,l),s=Object.freeze({...s,instructions:Object.freeze(i)});}}let S=s.lifetimeConstraint!==void 0;if(r||!S){let T=await e.rpc.getLatestBlockhash().send();S?r&&(s=Object.freeze({...s,lifetimeConstraint:T.value})):s=setTransactionMessageLifetimeUsingBlockhash(T.value,s),S=true;}return e.logRequest&&e.logRequest({base64WireTransaction:X(s)}),s}t(ne,"prepareTransaction");function ua(e){return typeof e=="string"?address(e):e}t(ua,"toAddress");function da(e){return e.some(n=>isInstructionForProgram(n,COMPUTE_BUDGET_PROGRAM_ADDRESS)&&isInstructionWithData(n)&&n.data[0]===ComputeBudgetInstruction.SetComputeUnitLimit)}t(da,"hasSetComputeUnitLimitInstruction");function ma(e){return e.some(n=>isInstructionForProgram(n,COMPUTE_BUDGET_PROGRAM_ADDRESS)&&isInstructionWithData(n)&&n.data[0]===ComputeBudgetInstruction.SetComputeUnitPrice)}t(ma,"hasSetComputeUnitPriceInstruction");function fa(e){return !!("addressTableLookup"in e&&e.addressTableLookup!=null||"addressTableLookups"in e&&Array.isArray(e.addressTableLookups)&&e.addressTableLookups.length>0)}t(fa,"instructionUsesAddressLookup");function ga(e,n){return e&&e!=="auto"?e:n.some(fa)?0:"legacy"}t(ga,"resolveVersion");function Sa(e,n){return e.commitment??n()}t(Sa,"normaliseCommitment");function ya(e,n){if(!e&&!n)throw new Error("A fee payer must be provided via `feePayer` or `authority`.");if(e&&typeof e=="object"&&"address"in e)return {address:e.address,signer:e};if(e){let o=ua(e);return n&&n.address===o?{address:o,signer:n}:{address:o}}if(!n)throw new Error("Unable to resolve authority signer for the fee payer.");return {address:n.address,signer:n}}t(ya,"resolveFeePayerAddress");function Ta(e,n){let r=e.computeUnitLimit;if(!(r===void 0||da(n)))return typeof r=="bigint"?r:BigInt(Math.floor(r))}t(Ta,"resolveComputeUnitLimit");function ha(e,n){if(!(e.computeUnitPrice===void 0||ma(n)))return typeof e.computeUnitPrice=="bigint"?e.computeUnitPrice:BigInt(Math.floor(e.computeUnitPrice))}t(ha,"resolveComputeUnitPrice");async function Rt(e,n){if(!e.instructions.length)throw new Error("Add at least one instruction before preparing a transaction.");let{getFallbackCommitment:r,runtime:o}=n;e.abortSignal?.throwIfAborted();let s=Sa(e,r),p,S="partial";if(e.authority)if(z(e.authority)){let{signer:f,mode:m}=V(e.authority,{commitment:s});p=f,S=m;}else p=e.authority,S=j(p);let{address:T,signer:C}=ya(e.feePayer,p);S==="send"&&(!C||!isTransactionSendingSigner(C))&&(S="partial");let g=[...e.instructions],l=ga(e.version,g),i=e.lifetime??(await o.rpc.getLatestBlockhash({commitment:s}).send({abortSignal:e.abortSignal})).value;e.abortSignal?.throwIfAborted();let a=Ta(e,g),u=ha(e,g),c=[];a!==void 0&&c.push(getSetComputeUnitLimitInstruction({units:Number(a)})),u!==void 0&&c.push(getSetComputeUnitPriceInstruction({microLamports:Number(u)}));let b=[...c,...g];return Object.freeze({commitment:s,computeUnitLimit:a,computeUnitPrice:u,createTransactionMessage:t(async()=>pipe(createTransactionMessage({version:l}),f=>C?setTransactionMessageFeePayerSigner(C,f):setTransactionMessageFeePayer(T,f),f=>setTransactionMessageLifetimeUsingBlockhash(i,f)),"createMessage"),feePayer:T,instructionPlan:getMessagePackerInstructionPlanFromInstructions(b),instructions:Object.freeze(g),lifetime:i,mode:S,version:l})}t(Rt,"createTransactionRecipe");function ba(e){if(e.kind!=="single")throw new Error("Transaction recipe produced a multi-transaction plan which is not supported.");return e}t(ba,"assertSingleTransactionPlan");function Ne(e,n){async function r(g){let l=await Rt(g,{getFallbackCommitment:n,runtime:e}),a=await createTransactionPlanner({createTransactionMessage:l.createTransactionMessage})(l.instructionPlan,{abortSignal:g.abortSignal}),u=ba(a);return Object.freeze({commitment:l.commitment,computeUnitLimit:l.computeUnitLimit,computeUnitPrice:l.computeUnitPrice,feePayer:l.feePayer,instructions:l.instructions,lifetime:l.lifetime,message:u.message,mode:l.mode,plan:a,version:l.version})}t(r,"prepare");async function o(g,l={}){return await signTransactionMessageWithSigners(g.message,{abortSignal:l.abortSignal,minContextSlot:l.minContextSlot})}t(o,"sign");async function s(g,l={}){let i=await o(g,l);return getBase64EncodedWireTransaction(i)}t(s,"toWire");async function p(g,l={}){return !g.plan||g.mode==="send"?S(g,l):T(g,l)}t(p,"send");async function S(g,l){let i=l.commitment??g.commitment;if(g.mode==="send"){let P=await signAndSendTransactionMessageWithSigners(g.message,{abortSignal:l.abortSignal,minContextSlot:l.minContextSlot}),f=getBase58Decoder();return signature(f.decode(P))}let a=await o(g,{abortSignal:l.abortSignal,minContextSlot:l.minContextSlot}),u=getBase64EncodedWireTransaction(a),c=l.maxRetries===void 0?void 0:typeof l.maxRetries=="bigint"?l.maxRetries:BigInt(l.maxRetries),b=await e.rpc.sendTransaction(u,{encoding:"base64",maxRetries:c,preflightCommitment:i,skipPreflight:l.skipPreflight}).send({abortSignal:l.abortSignal});return signature(b)}t(S,"sendDirect");async function T(g,l){if(!g.plan)return S(g,l);let i=l.commitment??g.commitment,a=l.maxRetries===void 0?void 0:typeof l.maxRetries=="bigint"?l.maxRetries:BigInt(l.maxRetries),u=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(b,P={}){let f=await signTransactionMessageWithSigners(b,{abortSignal:P.abortSignal??l.abortSignal,minContextSlot:l.minContextSlot}),m=getBase64EncodedWireTransaction(f),h=await e.rpc.sendTransaction(m,{encoding:"base64",maxRetries:a,preflightCommitment:i,skipPreflight:l.skipPreflight}).send({abortSignal:P.abortSignal??l.abortSignal});return u=signature(h),{transaction:f}}})(g.plan,{abortSignal:l.abortSignal}),!u)throw new Error("Failed to resolve transaction signature.");return u}t(T,"sendWithExecutor");async function C(g,l={}){let{prepareTransaction:i,...a}=g,u=await r(a);if(i===false)return p(u,l);let c=i??{},b=await ne({blockhashReset:c.blockhashReset??false,...c,rpc:e.rpc,transaction:u.message}),P=Object.freeze({...u,message:b,plan:singleTransactionPlan(b)});return p(P,l)}return t(C,"prepareAndSend"),Object.freeze({prepare:r,sign:o,toWire:s,send:p,prepareAndSend:C})}t(Ne,"createTransactionHelper");var je=address("So11111111111111111111111111111111111111112");function Ve(e,n){if(e)return typeof e=="string"?address(e):e;if(!n)throw new Error("An address value was expected but not provided.");return n}t(Ve,"ensureAddress");async function Mt(e,n,r){if(r)return r;let{value:o}=await e.rpc.getLatestBlockhash({commitment:n}).send();return o}t(Mt,"resolveLifetime");function Bt(e,n){if(z(e)){let{signer:r,mode:o}=V(e,{commitment:n});return {mode:o,signer:r}}return {mode:j(e),signer:e}}t(Bt,"resolveSigner");function Ba(e){return N.fromLamports(e)}t(Ba,"toLamportAmount");function Ke(e){let n=address(TOKEN_PROGRAM_ADDRESS);async function r(i){let[a]=await findAssociatedTokenPda({mint:je,owner:Ve(i),tokenProgram:n});return a}t(r,"deriveWsolAddress");async function o(i,a){let u=await r(i);try{let{value:c}=await e.rpc.getTokenAccountBalance(u,{commitment:a}).send();return {amount:BigInt(c.amount),ataAddress:u,exists:!0}}catch{return {amount:0n,ataAddress:u,exists:false}}}t(o,"fetchWsolBalance");async function s(i){let a=i.commitment,u=await Mt(e,a,i.lifetime),{signer:c,mode:b}=Bt(i.authority,a),P=Ve(i.owner,c.address),f=Ba(i.amount),m=await r(P),h=[getCreateAssociatedTokenIdempotentInstruction({ata:m,mint:je,owner:P,payer:c,tokenProgram:n}),getTransferSolInstruction({amount:f,destination:m,source:c}),getSyncNativeInstruction({account:m})],d=pipe(createTransactionMessage({version:i.transactionVersion??0}),y=>setTransactionMessageFeePayer(c.address,y),y=>setTransactionMessageLifetimeUsingBlockhash(u,y),y=>appendTransactionMessageInstructions(h,y));return {amount:f,ataAddress:m,commitment:a,lifetime:u,message:d,mode:b,owner:P,plan:singleTransactionPlan(d),signer:c}}t(s,"prepareWrap");async function p(i){let a=i.commitment,u=await Mt(e,a,i.lifetime),{signer:c,mode:b}=Bt(i.authority,a),P=Ve(i.owner,c.address),f=await r(P),m=getCloseAccountInstruction({account:f,destination:P,owner:c}),h=pipe(createTransactionMessage({version:i.transactionVersion??0}),d=>setTransactionMessageFeePayer(c.address,d),d=>setTransactionMessageLifetimeUsingBlockhash(u,d),d=>appendTransactionMessageInstruction(m,d));return {ataAddress:f,commitment:a,lifetime:u,message:h,mode:b,owner:P,plan:singleTransactionPlan(h),signer:c}}t(p,"prepareUnwrap");async function S(i,a={}){if(i.mode==="send"&&isTransactionSendingSigner(i.signer)){let f=await signAndSendTransactionMessageWithSigners(i.message,{abortSignal:a.abortSignal,minContextSlot:a.minContextSlot}),m=getBase58Decoder();return signature(m.decode(f))}let u=a.commitment??i.commitment,c=a.maxRetries===void 0?void 0:typeof a.maxRetries=="bigint"?a.maxRetries:BigInt(a.maxRetries),b=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(f,m={}){let h=await signTransactionMessageWithSigners(f,{abortSignal:m.abortSignal??a.abortSignal,minContextSlot:a.minContextSlot}),d=getBase64EncodedWireTransaction(h),y=await e.rpc.sendTransaction(d,{encoding:"base64",maxRetries:c,preflightCommitment:u,skipPreflight:a.skipPreflight}).send({abortSignal:m.abortSignal??a.abortSignal});return b=signature(y),{transaction:h}}})(i.plan??singleTransactionPlan(i.message),{abortSignal:a.abortSignal}),!b)throw new Error("Failed to resolve transaction signature.");return b}t(S,"sendPreparedTransaction");async function T(i,a){return S(i,a)}t(T,"sendPreparedWrap");async function C(i,a){return S(i,a)}t(C,"sendPreparedUnwrap");async function g(i,a){let u=await s(i);try{return await T(u,a)}catch(c){if(isSolanaError(c,SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED)){let b=await s({...i,lifetime:void 0});return await T(b,a)}throw c}}t(g,"sendWrap");async function l(i,a){let u=await p(i);try{return await C(u,a)}catch(c){if(isSolanaError(c,SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED)){let b=await p({...i,lifetime:void 0});return await C(b,a)}throw c}}return t(l,"sendUnwrap"),{deriveWsolAddress:r,fetchWsolBalance:o,prepareUnwrap:p,prepareWrap:s,sendPreparedUnwrap:C,sendPreparedWrap:T,sendUnwrap:l,sendWrap:g}}t(Ke,"createWsolHelper");function H(e,n,r){if(e.commitment!==void 0)return e;let o=r??n();return {...e,commitment:o}}t(H,"withDefaultCommitment");function Ea(e,n){return {prepareTransfer:t(r=>e.prepareTransfer(H(r,n)),"prepareTransfer"),sendPreparedTransfer:e.sendPreparedTransfer,sendTransfer:t((r,o)=>e.sendTransfer(H(r,n),o),"sendTransfer")}}t(Ea,"wrapSolTransferHelper");function Ha(e,n,r){let o=t(s=>s??r??n(),"resolveCommitment");return {deriveAssociatedTokenAddress:e.deriveAssociatedTokenAddress,fetchBalance:t((s,p)=>e.fetchBalance(s,o(p)),"fetchBalance"),prepareTransfer:t(s=>e.prepareTransfer(H(s,n,r)),"prepareTransfer"),sendPreparedTransfer:e.sendPreparedTransfer,sendTransfer:t((s,p)=>e.sendTransfer(H(s,n,r),p),"sendTransfer")}}t(Ha,"wrapSplTokenHelper");function Da(e,n){return {getStakeAccounts:e.getStakeAccounts,prepareStake:t(r=>e.prepareStake(H(r,n)),"prepareStake"),prepareUnstake:t(r=>e.prepareUnstake(H(r,n)),"prepareUnstake"),prepareWithdraw:t(r=>e.prepareWithdraw(H(r,n)),"prepareWithdraw"),sendPreparedStake:e.sendPreparedStake,sendPreparedUnstake:e.sendPreparedUnstake,sendPreparedWithdraw:e.sendPreparedWithdraw,sendStake:t((r,o)=>e.sendStake(H(r,n),o),"sendStake"),sendUnstake:t((r,o)=>e.sendUnstake(H(r,n),o),"sendUnstake"),sendWithdraw:t((r,o)=>e.sendWithdraw(H(r,n),o),"sendWithdraw")}}t(Da,"wrapStakeHelper");function Fa(e,n){return {deriveWsolAddress:e.deriveWsolAddress,fetchWsolBalance:t((r,o)=>e.fetchWsolBalance(r,o??n()),"fetchWsolBalance"),prepareWrap:t(r=>e.prepareWrap(H(r,n)),"prepareWrap"),prepareUnwrap:t(r=>e.prepareUnwrap(H(r,n)),"prepareUnwrap"),sendPreparedWrap:e.sendPreparedWrap,sendPreparedUnwrap:e.sendPreparedUnwrap,sendWrap:t((r,o)=>e.sendWrap(H(r,n),o),"sendWrap"),sendUnwrap:t((r,o)=>e.sendUnwrap(H(r,n),o),"sendUnwrap")}}t(Fa,"wrapWsolHelper");function se(e){if(e!=null)return typeof e=="string"?e:typeof e=="object"&&"toString"in e?String(e.toString()):JSON.stringify(e)}t(se,"normaliseConfigValue");function _a(e){return JSON.stringify({associatedTokenProgram:se(e.associatedTokenProgram),commitment:se(e.commitment),decimals:e.decimals,mint:se(e.mint),tokenProgram:se(e.tokenProgram)})}t(_a,"serialiseSplConfig");function Et(e,n){let r=t(()=>n.getState().cluster.commitment,"getFallbackCommitment"),o=new Map,s,p,S,T,C=t(()=>(s||(s=Ea(Pe(e),r)),s),"getSolTransfer"),g=t(()=>(p||(p=Da(De(e),r)),p),"getStake"),l=t(()=>(S||(S=Ne(e,r)),S),"getTransaction"),i=t(()=>(T||(T=Fa(Ke(e),r)),T),"getWsol");function a(c){let b=_a(c),P=o.get(b);if(P)return P.scoped;let f=ke(e,c),m=Ha(f,r,c.commitment);return o.set(b,{baseCommitment:c.commitment,scoped:m}),m}return t(a,"getSplTokenHelper"),Object.freeze({get solTransfer(){return C()},splToken:a,get stake(){return g()},get transaction(){return l()},get wsol(){return i()},prepareTransaction:t(c=>ne({...c,rpc:e.rpc}),"prepareTransactionWithRuntime")})}t(Et,"createClientHelpers");function za(){return {status:"idle"}}t(za,"createClusterStatus");function ce(e){let{commitment:n,endpoint:r,websocketEndpoint:o}=e,s=Date.now();return fe({accounts:{},cluster:{commitment:n,endpoint:r,status:za(),websocketEndpoint:o},lastUpdatedAt:s,subscriptions:{account:{},signature:{}},transactions:{},wallet:{status:"disconnected"}})}t(ce,"createInitialClientState");function le(e){return createStore(()=>e)}t(le,"createClientStore");function Va(e){return le(ce(e))}t(Va,"createDefaultClientStore");function Ht({logger:e,runtime:n,store:r}){let o=e??Z();function s(a,u,c){r.setState(b=>({...b,lastUpdatedAt:L(),subscriptions:{...b.subscriptions,[a]:{...b.subscriptions[a],[u]:c}}}));}t(s,"setSubscriptionStatus");function p(a,u){s(a,u,{status:"inactive"});}t(p,"onAbort");function S(a,u,c){function b(){c.abort(),p(a,u);}return t(b,"abort"),{abort:b}}t(S,"createSubscriptionHandle");async function T(a,u,c){let b=a.commitment??r.getState().cluster.commitment,P=n.rpcSubscriptions.accountNotifications(a.address,{commitment:b}),f=a.address.toString();s("account",f,{status:"activating"}),c.signal.addEventListener("abort",()=>p("account",f));try{let m=await P.subscribe({abortSignal:c.signal});s("account",f,{status:"active"});for await(let h of m){let d=h.value?.lamports??null,y=h.value?.executable??null,w=h.value?.owner??null,W=h.context?.slot??null,k={address:a.address,data:h.value?.data,error:void 0,executable:y,fetching:!1,lamports:d,lastFetchedAt:L(),owner:w,slot:W};u(k),r.setState(A=>({...A,accounts:{...A.accounts,[f]:k},lastUpdatedAt:L()}));}}catch(m){c.signal.aborted||(o({data:{address:f,...B(m)},level:"error",message:"account subscription failed"}),s("account",f,{error:m,status:"error"}));}}t(T,"handleAccountNotifications");function C(a,u){let c=new AbortController;return T(a,u,c).catch(b=>{c.signal.aborted||o({data:{address:a.address.toString(),...B(b)},level:"error",message:"account watcher error"});}),S("account",a.address.toString(),c)}t(C,"watchAccount");function g(a,u){return C(a,c=>{c.lamports!==null&&u(c.lamports);})}t(g,"watchBalance");async function l(a,u,c){let b=a.commitment??r.getState().cluster.commitment,P=n.rpcSubscriptions.signatureNotifications(a.signature,{commitment:b,enableReceivedNotification:a.enableReceivedNotification}),f=a.signature.toString();s("signature",f,{status:"activating"}),c.signal.addEventListener("abort",()=>p("signature",f));try{let m=await P.subscribe({abortSignal:c.signal});s("signature",f,{status:"active"});for await(let h of m)u(h),r.setState(d=>({...d,lastUpdatedAt:L(),transactions:{...d.transactions,[f]:{lastUpdatedAt:L(),signature:a.signature,status:"waiting"}}}));}catch(m){c.signal.aborted||(o({data:{signature:f,...B(m)},level:"error",message:"signature subscription failed"}),s("signature",f,{error:m,status:"error"}));}}t(l,"handleSignatureNotifications");function i(a,u){let c=new AbortController;return l(a,u,c).catch(b=>{c.signal.aborted||o({data:{signature:a.signature.toString(),...B(b)},level:"error",message:"signature watcher error"});}),S("signature",a.signature.toString(),c)}return t(i,"watchSignature"),{watchAccount:C,watchBalance:g,watchSignature:i}}t(Ht,"createWatchers");function $e(e){let n=e.initialState?Se(e,e.initialState):e,r=ee({endpoint:n.rpc??n.endpoint,moniker:n.cluster,websocketEndpoint:n.websocket??n.websocketEndpoint}),o=n.commitment??"confirmed",s=ce({commitment:o,endpoint:r.endpoint,websocketEndpoint:r.websocketEndpoint}),p=e.createStore?e.createStore(s):le(s),S=n.rpcClient??Q({commitment:o,endpoint:r.endpoint,websocketEndpoint:r.websocketEndpoint}),T={rpc:S.rpc,rpcSubscriptions:S.rpcSubscriptions},C=ye(n.walletConnectors??[]),g=Z(n.logger),l=at({connectors:C,logger:g,runtime:T,store:p}),i=Ht({logger:g,runtime:T,store:p}),a=Et(T,p);p.setState(c=>({...c,cluster:{...c.cluster,status:{status:"connecting"}},lastUpdatedAt:L()})),l.setCluster(r.endpoint,{commitment:o,websocketEndpoint:r.websocketEndpoint}).catch(c=>g({data:B(c),level:"error",message:"initial cluster setup failed"}));function u(){p.setState(()=>s);}return t(u,"destroy"),{actions:l,config:e,connectors:C,destroy:u,get helpers(){return a},runtime:T,store:p,get solTransfer(){return a.solTransfer},get SolTransfer(){return a.solTransfer},splToken:a.splToken,SplToken:a.splToken,SplHelper:a.splToken,get stake(){return a.stake},get transaction(){return a.transaction},get wsol(){return a.wsol},prepareTransaction:a.prepareTransaction,watchers:i}}t($e,"createClient");var Qa=getBase58Decoder(),eo=getTransactionDecoder(),Ft=getTransactionEncoder();function to(e){return `wallet-standard:${e.name.toLowerCase().replace(/[^a-z0-9]+/g,"-")}`}t(to,"deriveConnectorId");function no(e){let n=e[0];if(!n)throw new Error("Wallet returned no accounts.");return n}t(no,"getPrimaryAccount");function ro(e){if(e==="processed"||e==="confirmed"||e==="finalized")return e}t(ro,"mapCommitment");function Je(e){return {address:address(e.address),label:e.label,publicKey:new Uint8Array(e.publicKey)}}t(Je,"toSessionAccount");function _t(e){let[n]=e.chains??[];return n}t(_t,"getChain");async function Nt(e){let n=e.features[StandardDisconnect];n&&await n.disconnect();}t(Nt,"disconnectWallet");function re(e,n={}){let r={canAutoConnect:n.canAutoConnect??!!e.features[StandardConnect],icon:n.icon??e.icon,id:n.id??to(e),kind:n.kind??"wallet-standard",name:n.name??e.name,ready:typeof window<"u"};async function o(S={}){let T=e.features[StandardConnect],C=e.features[StandardEvents],g=!!S.autoConnect,l=S.allowInteractiveFallback??true,i=e.accounts;if(T){let k=t(async A=>T.connect({silent:A}),"connectWithMode");try{let{accounts:A}=await k(g);A.length&&(i=A);}catch(A){if(!g||!l)throw A;let{accounts:x}=await k(false);x.length&&(i=x);}}let a=no(i),u=Je(a),c=e.features[SolanaSignMessage],b=e.features[SolanaSignTransaction],P=e.features[SolanaSignAndSendTransaction],f=n.defaultChain??_t(a),m=c?async k=>{let[A]=await c.signMessage({account:a,message:k});return A.signature}:void 0,h=b?async k=>{let A=new Uint8Array(Ft.encode(k)),x=f?{account:a,chain:f,transaction:A}:{account:a,transaction:A},[v]=await b.signTransaction(x);return eo.decode(v.signedTransaction)}:void 0,d=P?async(k,A)=>{let x=new Uint8Array(Ft.encode(k)),v=n.defaultChain??_t(a)??"solana:mainnet-beta",[me]=await P.signAndSendTransaction({account:a,chain:v,options:{commitment:ro(A?.commitment)},transaction:x});return Qa.decode(me.signature)}:void 0;async function y(){w?.(),await Nt(e);}t(y,"disconnectSession");let w,W=C?k=>C.on("change",({accounts:x})=>{if(x){if(!x.length){k([]);return}a=x[0],u=Je(a),k(x.map(Je));}}):void 0;return {account:u,connector:r,disconnect:y,onAccountsChanged:W?k=>(w=W(k),()=>{w?.(),w=void 0;}):void 0,sendTransaction:d,signMessage:m,signTransaction:h}}t(o,"connect");async function s(){await Nt(e);}t(s,"disconnect");function p(){return typeof window<"u"}return t(p,"isSupported"),{...r,connect:o,disconnect:s,isSupported:p}}t(re,"createWalletStandardConnector");function Vt(e,n){return re(e,n?.(e))}t(Vt,"mapWalletToConnector");function ao(e={}){let{get:n}=getWallets(),r=n().map(s=>Vt(s,e.overrides)),o=new Set;return r.filter(s=>o.has(s.id)?false:(o.add(s.id),true))}t(ao,"getWalletStandardConnectors");function oo(e,n={}){let{get:r,on:o}=getWallets(),s=t(()=>{let T=r().map(l=>Vt(l,n.overrides)),C=new Set,g=T.filter(l=>C.has(l.id)?false:(C.add(l.id),true));e(g);},"emit");s();let p=o("register",s),S=o("unregister",s);return ()=>{p(),S();}}t(oo,"watchWalletStandardConnectors");function $(e={}){let{get:n}=getWallets(),o=n().filter(p=>e.filter?e.filter(p):true).map(p=>re(p,e.overrides?.(p))),s=new Set;return o.filter(p=>s.has(p.id)?false:(s.add(p.id),true))}t($,"autoDiscover");function so(e){return {canAutoConnect:true,id:"wallet-standard:injected",kind:"wallet-standard",name:"Injected Wallet",ready:typeof window<"u",async connect(){let o=getWallets().get().find(s=>StandardConnect in s.features);if(!o)throw new Error("No Wallet Standard wallets available.");return re(o,e).connect()},async disconnect(){},isSupported(){return typeof window<"u"}}}t(so,"injected");function pe(e){let n=e.toLowerCase();return r=>r.name.toLowerCase().includes(n)}t(pe,"filterByName");function Ge(e){return $({filter:pe("phantom"),overrides:t(()=>({...e,id:"wallet-standard:phantom"}),"overrides")})}t(Ge,"phantom");function Ze(e){return $({filter:pe("solflare"),overrides:t(()=>({...e,id:"wallet-standard:solflare"}),"overrides")})}t(Ze,"solflare");function Ye(e){return $({filter:pe("backpack"),overrides:t(()=>({...e,id:"wallet-standard:backpack"}),"overrides")})}t(Ye,"backpack");function co(e){return $({filter:pe("metamask"),overrides:t(()=>({...e,id:"wallet-standard:metamask"}),"overrides")})}t(co,"metamask");function qt(){return [...Ge(),...Ze(),...Ye(),...$()]}t(qt,"defaultWalletConnectors");function ue(e){if(!e)return;let n=e.trim();return n.length?n:void 0}t(ue,"normalizeUrl");function Kt(e={}){let{cluster:n,endpoint:r,rpc:o,websocket:s,websocketEndpoint:p,walletConnectors:S,...T}=e,C=ue(o)??ue(r)??ue(e.endpoint),g=ee({endpoint:C,moniker:n??void 0,websocketEndpoint:ue(s??p)}),l=S===void 0||S==="default"?qt():S;return {...T,endpoint:g.endpoint,websocketEndpoint:g.websocketEndpoint,walletConnectors:l}}t(Kt,"resolveClientConfig");function lo(e={}){return $e(Kt(e))}t(lo,"createDefaultClient");function I(){return {status:"idle"}}t(I,"createInitialAsyncState");function O(e,n={}){return {data:n.data,error:n.error,status:e}}t(O,"createAsyncState");function po(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before sending SOL transfers.");return {...e,authority:r}}t(po,"ensureAuthority");function uo(e){let n=new Set,r=e.helper,o=e.authorityProvider,s=I();function p(){for(let l of n)l();}t(p,"notify");function S(l){s=l,p();}t(S,"setState");async function T(l,i){let a=po(l,o);S(O("loading"));try{let u=await r.sendTransfer(a,i);return S(O("success",{data:u})),u}catch(u){throw S(O("error",{error:u})),u}}t(T,"send");function C(l){return n.add(l),()=>{n.delete(l);}}t(C,"subscribe");function g(){S(I());}return t(g,"reset"),{getHelper:t(()=>r,"getHelper"),getState:t(()=>s,"getState"),reset:g,send:T,subscribe:C}}t(uo,"createSolTransferController");function mo(e,n,r){let o=e.authority??n?.();if(!o)throw new Error("Connect a wallet or supply an `authority` before sending SPL tokens.");let s=e.sourceOwner??r?.();if(!s)throw new Error("Unable to resolve a source owner for the SPL token transfer.");return {...e,authority:o,sourceOwner:s}}t(mo,"ensureTransferConfig");function fo(e){let n=e.helper,r=e.authorityProvider,o=e.sourceOwnerProvider,s=new Set,p=I();function S(){for(let i of s)i();}t(S,"notify");function T(i){p=i,S();}t(T,"setState");async function C(i,a){let u=mo(i,i.authority?void 0:r,i.sourceOwner?void 0:o);T(O("loading"));try{let c=await n.sendTransfer(u,a);return T(O("success",{data:c})),c}catch(c){throw T(O("error",{error:c})),c}}t(C,"send");function g(i){return s.add(i),()=>{s.delete(i);}}t(g,"subscribe");function l(){T(I());}return t(l,"reset"),{getHelper:t(()=>n,"getHelper"),getState:t(()=>p,"getState"),reset:l,send:C,subscribe:g}}t(fo,"createSplTransferController");function go(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before staking SOL.");return {...e,authority:r}}t(go,"ensureAuthority");function So(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before unstaking SOL.");return {...e,authority:r}}t(So,"ensureUnstakeAuthority");function yo(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before withdrawing SOL.");return {...e,authority:r}}t(yo,"ensureWithdrawAuthority");function To(e){let n=new Set,r=new Set,o=new Set,s=e.helper,p=e.authorityProvider,S=I(),T=I(),C=I();function g(){for(let k of n)k();}t(g,"notify");function l(){for(let k of r)k();}t(l,"notifyUnstake");function i(){for(let k of o)k();}t(i,"notifyWithdraw");function a(k){S=k,g();}t(a,"setState");function u(k){T=k,l();}t(u,"setUnstakeState");function c(k){C=k,i();}t(c,"setWithdrawState");async function b(k,A){let x=go(k,p);a(O("loading"));try{let v=await s.sendStake(x,A);return a(O("success",{data:v})),v}catch(v){throw a(O("error",{error:v})),v}}t(b,"stake");async function P(k,A){let x=So(k,p);u(O("loading"));try{let v=await s.sendUnstake(x,A);return u(O("success",{data:v})),v}catch(v){throw u(O("error",{error:v})),v}}t(P,"unstake");async function f(k,A){let x=yo(k,p);c(O("loading"));try{let v=await s.sendWithdraw(x,A);return c(O("success",{data:v})),v}catch(v){throw c(O("error",{error:v})),v}}t(f,"withdraw");function m(k){return n.add(k),()=>{n.delete(k);}}t(m,"subscribe");function h(k){return r.add(k),()=>{r.delete(k);}}t(h,"subscribeUnstake");function d(k){return o.add(k),()=>{o.delete(k);}}t(d,"subscribeWithdraw");function y(){a(I());}t(y,"reset");function w(){u(I());}t(w,"resetUnstake");function W(){c(I());}return t(W,"resetWithdraw"),{getHelper:t(()=>s,"getHelper"),getState:t(()=>S,"getState"),getUnstakeState:t(()=>T,"getUnstakeState"),getWithdrawState:t(()=>C,"getWithdrawState"),reset:y,resetUnstake:w,resetWithdraw:W,stake:b,unstake:P,withdraw:f,subscribe:m,subscribeUnstake:h,subscribeWithdraw:d}}t(To,"createStakeController");function $t(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before wrapping/unwrapping SOL.");return {...e,authority:r}}t($t,"ensureAuthority");function ho(e){let n=new Set,r=new Set,o=e.helper,s=e.authorityProvider,p=I(),S=I();function T(){for(let f of n)f();}t(T,"notifyWrap");function C(){for(let f of r)f();}t(C,"notifyUnwrap");function g(f){p=f,T();}t(g,"setWrapState");function l(f){S=f,C();}t(l,"setUnwrapState");async function i(f,m){let h=$t(f,s);g(O("loading"));try{let d=await o.sendWrap(h,m);return g(O("success",{data:d})),d}catch(d){throw g(O("error",{error:d})),d}}t(i,"wrap");async function a(f,m){let h=$t(f,s);l(O("loading"));try{let d=await o.sendUnwrap(h,m);return l(O("success",{data:d})),d}catch(d){throw l(O("error",{error:d})),d}}t(a,"unwrap");function u(f){return n.add(f),()=>{n.delete(f);}}t(u,"subscribeWrap");function c(f){return r.add(f),()=>{r.delete(f);}}t(c,"subscribeUnwrap");function b(){g(I());}t(b,"resetWrap");function P(){l(I());}return t(P,"resetUnwrap"),{getHelper:t(()=>o,"getHelper"),getWrapState:t(()=>p,"getWrapState"),getUnwrapState:t(()=>S,"getUnwrapState"),resetWrap:b,resetUnwrap:P,wrap:i,unwrap:a,subscribeWrap:u,subscribeUnwrap:c}}t(ho,"createWsolController");function bo(e){return e.toString()}t(bo,"bigintToJson");function Co(e){return q(e,"bigint")}t(Co,"bigintFromJson");function wo(e){return e.toString()}t(wo,"lamportsToJson");function Po(e){return we(e,"lamports")}t(Po,"lamportsFromJson");var Jt={processed:0,confirmed:1,finalized:2},Ao=2e4;function Ro(e){if(e)return typeof e=="string"?signature(e):e}t(Ro,"normalizeSignature");function Wo(e){return e?e.confirmationStatus==="processed"||e.confirmationStatus==="confirmed"||e.confirmationStatus==="finalized"?e.confirmationStatus:e.confirmations===null?"finalized":typeof e.confirmations=="number"&&e.confirmations>0?"confirmed":"processed":null}t(Wo,"deriveConfirmationStatus");function xo(e,n){return e?Jt[e]>=Jt[n]:false}t(xo,"confirmationMeetsCommitment");var Io="MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";function Uo(e){let n=e.findIndex(r=>r.programAddress!==Io);if(e.length===0||n===-1)throw new SolanaError(SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR,{cause:"At least one non-memo instruction is required.",index:e.length||n});return n}t(Uo,"ensureNonMemoInstructionIndex");function Mo(e,n){return Gt([e],n)}t(Mo,"insertReferenceKey");function Gt(e,n){let r=Uo(n.instructions),o=n.instructions[r],s=[...o.accounts??[],...e.map(S=>({address:S,role:AccountRole.READONLY}))],p=[...n.instructions];return p.splice(r,1,{...o,accounts:s}),Object.freeze({...n,instructions:Object.freeze(p)})}t(Gt,"insertReferenceKeys");function de(e){let n=e,r=new Set;return {getSnapshot:t(()=>n,"getSnapshot"),setSnapshot(o){n=o;for(let s of r)s();},subscribe(o){return r.add(o),()=>{r.delete(o);}}}}t(de,"createStore");function Zt(e){return Object.freeze([...e])}t(Zt,"freezeInstructions");function Bo(e){let n=e.helper,r=Zt(e.initialInstructions??[]),o=e.blockhashMaxAgeMs??3e4,s,p=de(r),S=de(null),T=de(I()),C=de(I());function g(){S.setSnapshot(null),T.setSnapshot(I()),C.setSnapshot(I());}t(g,"resetDerivedState");function l(R){p.setSnapshot(Zt(R)),g();}t(l,"commitInstructions");function i(R){let U=[...p.getSnapshot(),R];l(U);}t(i,"addInstruction");function a(R){if(!R.length)return;let U=[...p.getSnapshot(),...R];l(U);}t(a,"addInstructions");function u(R){l(R);}t(u,"replaceInstructions");function c(){l([]);}t(c,"clearInstructions");function b(R){let U=p.getSnapshot();if(R<0||R>=U.length)return;let E=U.filter((_,M)=>M!==R);l(E);}t(b,"removeInstruction");function P(){l(r);}t(P,"reset");function f(R){if(!R.length)throw new Error("Add at least one instruction before preparing a transaction.")}t(f,"ensureInstructions");function m(){if(s&&!(Date.now()-s.updatedAt>o))return s.value}t(m,"resolveCachedLifetime");async function h(R={}){let{instructions:U,...E}=R,_=U??p.getSnapshot();f(_),T.setSnapshot(O("loading"));try{let M=E.lifetime??m(),J=M&&!E.lifetime?{...E,lifetime:M}:E,G=await n.prepare({...J,instructions:_});return S.setSnapshot(G),T.setSnapshot(O("success",{data:G})),G}catch(M){throw T.setSnapshot(O("error",{error:M})),M}}t(h,"prepare");function d(R){let U=R??S.getSnapshot();if(!U)throw new Error("Prepare a transaction before sending.");return U}t(d,"resolvePrepared");function y(R){if(R.lifetime)return R;let U=m();return U?{...R,lifetime:U}:R}t(y,"resolveLifetimeOptions");async function w(R={}){let{prepared:U,...E}=R,_=d(U);C.setSnapshot(O("loading"));try{let M=await n.send(_,E);return C.setSnapshot(O("success",{data:M})),M}catch(M){throw C.setSnapshot(O("error",{error:M})),M}}t(w,"send");async function W(R={},U){let{instructions:E,..._}=R,M=E??p.getSnapshot();f(M),C.setSnapshot(O("loading"));try{let J=y(_),G=await n.prepareAndSend({...J,instructions:M},U);return C.setSnapshot(O("success",{data:G})),G}catch(J){throw C.setSnapshot(O("error",{error:J})),J}}t(W,"prepareAndSend");function k(R={}){let{prepared:U,...E}=R,_=d(U);return n.sign(_,E)}t(k,"sign");function A(R={}){let{prepared:U,...E}=R,_=d(U);return n.toWire(_,E)}t(A,"toWire");function x(R){return p.subscribe(R)}t(x,"subscribeInstructions");function v(R){return S.subscribe(R)}t(v,"subscribePrepared");function me(R){return T.subscribe(R)}t(me,"subscribePrepareState");function Xt(R){return C.subscribe(R)}t(Xt,"subscribeSendState");function Qt(R){s=R;}return t(Qt,"setLatestBlockhashCache"),{addInstruction:i,addInstructions:a,clearInstructions:c,get helper(){return n},getInstructions:p.getSnapshot,getPrepareState:T.getSnapshot,getPrepared:S.getSnapshot,getSendState:C.getSnapshot,getLatestBlockhashCache:t(()=>s,"getLatestBlockhashCache"),prepare:h,prepareAndSend:W,removeInstruction:b,replaceInstructions:u,reset:P,send:w,setLatestBlockhashCache:Qt,sign:k,subscribeInstructions:x,subscribePrepareState:me,subscribePrepared:v,subscribeSendState:Xt,toWire:A}}t(Bo,"createTransactionPoolController");function Yt(e){return typeof e=="string"?address(e):e}t(Yt,"toAddress");function Ho(e){return Yt(e).toString()}t(Ho,"toAddressString");function Do(e){return JSON.stringify(e,(r,o)=>typeof o=="bigint"?{__type:"bigint",value:o.toString()}:o instanceof Uint8Array?Array.from(o):o)??"undefined"}t(Do,"stableStringify");
2
- export{Nn as LAMPORTS_PER_SOL,Ao as SIGNATURE_STATUS_TIMEOUT_MS,je as WRAPPED_SOL_MINT,Ce as applyRatio,Se as applySerializableState,ae as assertDecimals,D as assertNonNegative,$ as autoDiscover,Ye as backpack,Co as bigintFromJson,bo as bigintToJson,he as checkedAdd,Bn as checkedDivide,Mn as checkedMultiply,be as checkedSubtract,xo as confirmationMeetsCommitment,tn as connectWallet,O as createAsyncState,$e as createClient,le as createClientStore,lo as createDefaultClient,Va as createDefaultClientStore,I as createInitialAsyncState,ce as createInitialClientState,Hn as createRatio,uo as createSolTransferController,Pe as createSolTransferHelper,Q as createSolanaRpcClient,ke as createSplTokenHelper,fo as createSplTransferController,To as createStakeController,De as createStakeHelper,te as createTokenAmount,Ne as createTransactionHelper,Bo as createTransactionPoolController,Rt as createTransactionRecipe,ye as createWalletRegistry,re as createWalletStandardConnector,ho as createWsolController,Ke as createWsolHelper,qt as defaultWalletConnectors,Wo as deriveConfirmationStatus,bn as deserializeSolanaState,nn as disconnectWallet,rn as fetchAccount,an as fetchBalance,on as fetchLookupTable,sn as fetchLookupTables,cn as fetchNonceAccount,hn as getInitialSerializableState,ao as getWalletStandardConnectors,so as injected,Mo as insertReferenceKey,Gt as insertReferenceKeys,we as lamports,Po as lamportsFromJson,zn as lamportsFromSol,N as lamportsMath,wo as lamportsToJson,Vn as lamportsToSolString,co as metamask,Ro as normalizeSignature,Ge as phantom,Te as pow10,ne as prepareTransaction,ln as requestAirdrop,Kt as resolveClientConfig,ee as resolveCluster,pn as sendTransaction,ge as serializeSolanaState,un as setCluster,Ze as solflare,Do as stableStringify,Cn as subscribeSolanaState,Yt as toAddress,Ho as toAddressString,q as toBigint,X as transactionToBase64,Nr as transactionToBase64WithSigners,oo as watchWalletStandardConnectors};//# sourceMappingURL=index.browser.mjs.map
1
+ import {address,createSolanaRpc,createSolanaRpcSubscriptions,getBase64EncodedWireTransaction,compileTransaction,partiallySignTransactionMessageWithSigners,appendTransactionMessageInstruction,setTransactionMessageLifetimeUsingBlockhash,isTransactionSendingSigner,getMessagePackerInstructionPlanFromInstructions,pipe,createTransactionMessage,setTransactionMessageFeePayerSigner,setTransactionMessageFeePayer,signature,AccountRole,singleTransactionPlan,signAndSendTransactionMessageWithSigners,createTransactionPlanExecutor,signTransactionMessageWithSigners,isSolanaError,SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED,generateKeyPairSigner,appendTransactionMessageInstructions,createTransactionPlanner,signatureBytes,isTransactionPartialSigner,SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED,isInstructionForProgram,isInstructionWithData,SolanaError,SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR,isSome,airdropFactory}from'@solana/kit';import {createBlockHeightExceedencePromiseFactory,createRecentSignatureConfirmationPromiseFactory,waitForRecentTransactionConfirmation}from'@solana/transaction-confirmation';import {fetchAddressLookupTable,fetchAllAddressLookupTable}from'@solana-program/address-lookup-table';import {getTransferSolInstruction,getCreateAccountInstruction,fetchNonce}from'@solana-program/system';import {getBase58Decoder,getBase58Encoder}from'@solana/codecs-strings';import {TOKEN_PROGRAM_ADDRESS,fetchMint as fetchMint$1,findAssociatedTokenPda,getCreateAssociatedTokenInstruction,getTransferCheckedInstruction as getTransferCheckedInstruction$1,getCreateAssociatedTokenIdempotentInstruction,getSyncNativeInstruction,getCloseAccountInstruction}from'@solana-program/token';export{TOKEN_PROGRAM_ADDRESS}from'@solana-program/token';import {TOKEN_2022_PROGRAM_ADDRESS,fetchMint,getTransferCheckedInstruction}from'@solana-program/token-2022';export{TOKEN_2022_PROGRAM_ADDRESS}from'@solana-program/token-2022';import {getInitializeInstruction,getDelegateStakeInstruction,getDeactivateInstruction,getWithdrawInstruction}from'@solana-program/stake';import {getSetComputeUnitLimitInstruction,getSetComputeUnitPriceInstruction,COMPUTE_BUDGET_PROGRAM_ADDRESS,ComputeBudgetInstruction}from'@solana-program/compute-budget';import {createStore}from'zustand/vanilla';import {getWallets}from'@wallet-standard/app';import {StandardConnect,StandardEvents,StandardDisconnect}from'@wallet-standard/features';import {getTransactionDecoder,getTransactionEncoder}from'@solana/transactions';import {SolanaSignMessage,SolanaSignTransaction,SolanaSignAndSendTransaction}from'@solana/wallet-standard-features';var on=Object.defineProperty;var t=(e,n)=>on(e,"name",{value:n,configurable:true});function sn(e,n){return e.actions.connectWallet(n.connectorId,n.options)}t(sn,"connectWallet");function cn(e,n){return e.actions.disconnectWallet()}t(cn,"disconnectWallet");function ln(e,n){return e.actions.fetchAccount(n.address,n.commitment)}t(ln,"fetchAccount");function pn(e,n){return e.actions.fetchBalance(n.address,n.commitment)}t(pn,"fetchBalance");function un(e,n){return e.actions.fetchLookupTable(n.address,n.commitment)}t(un,"fetchLookupTable");function dn(e,n){return e.actions.fetchLookupTables(n.addresses,n.commitment)}t(dn,"fetchLookupTables");function mn(e,n){return e.actions.fetchNonceAccount(n.address,n.commitment)}t(mn,"fetchNonceAccount");function fn(e,n){return e.actions.requestAirdrop(n.address,n.lamports)}t(fn,"requestAirdrop");function gn(e,n){return e.actions.sendTransaction(n.transaction,n.commitment)}t(gn,"sendTransaction");function Sn(e,n){return e.actions.setCluster(n.endpoint,n.config)}t(Sn,"setCluster");function Te(e){if(typeof e!="object"||e===null)return e;let n=e;for(let r of Reflect.ownKeys(n)){let o=n[r];Te(o);}return Object.freeze(e)}t(Te,"deepFreeze");function x(){return Date.now()}t(x,"now");function at(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}t(at,"toErrorMessage");function X(e){return e||(({data:n,level:r,message:o})=>{let i=n?{...n}:{};switch(r){case "error":console.error(`[react-core] ${o}`,i);break;case "warn":console.warn(`[react-core] ${o}`,i);break;case "info":console.info(`[react-core] ${o}`,i);break;default:console.debug(`[react-core] ${o}`,i);}})}t(X,"createLogger");function E(e){return {error:e,message:at(e)}}t(E,"formatError");function wn(e){let n=new AbortController;if(!e)return n;if(e.aborted)return n.abort(e.reason),n;let r=t(()=>{n.abort(e.reason),e.removeEventListener("abort",r);},"onAbort");return e.addEventListener("abort",r,{once:true}),n}t(wn,"createChainedAbortController");function it(e){if(e!==void 0)return typeof e=="bigint"?e:BigInt(Math.floor(e))}t(it,"toBigint");var Pn=Object.freeze({encoding:"base64",replaceRecentBlockhash:true,sigVerify:false});function te(e){let n=e.endpoint,r=e.websocketEndpoint??n,o=e.commitment??"confirmed",i=createSolanaRpc(n,e.rpcConfig),l=createSolanaRpcSubscriptions(r,e.rpcSubscriptionsConfig);async function y(w,S={}){let c=wn(S.abortSignal),s=S.commitment??o,a=getBase64EncodedWireTransaction(w),m=await i.sendTransaction(a,{encoding:"base64",maxRetries:it(S.maxRetries),minContextSlot:it(S.minContextSlot),preflightCommitment:s,skipPreflight:S.skipPreflight}).send({abortSignal:c.signal}),u=createBlockHeightExceedencePromiseFactory({rpc:i,rpcSubscriptions:l}),f=createRecentSignatureConfirmationPromiseFactory({rpc:i,rpcSubscriptions:l});return await waitForRecentTransactionConfirmation({abortSignal:c.signal,commitment:s,getBlockHeightExceedencePromise:u,getRecentSignatureConfirmationPromise:f,transaction:w}),m}t(y,"sendAndConfirmTransaction");async function b(w,S={}){let c=getBase64EncodedWireTransaction(w),s=S.config??{},a={...Pn,...s,commitment:s.commitment??S.commitment??o},m=a.sigVerify===true&&a.replaceRecentBlockhash!==false?{...a,replaceRecentBlockhash:false}:a;return i.simulateTransaction(c,m).send({abortSignal:S.abortSignal})}return t(b,"simulateTransaction"),{commitment:o,endpoint:n,rpc:i,rpcSubscriptions:l,sendAndConfirmTransaction:y,simulateTransaction:b,websocketEndpoint:r}}t(te,"createSolanaRpcClient");function kn(e){return {autoconnect:false,commitment:e.commitment,endpoint:e.endpoint,lastConnectorId:null,lastPublicKey:null,version:1,websocketEndpoint:e.websocketEndpoint}}t(kn,"getInitialSerializableState");function be(e,n){return n?{...e,commitment:n.commitment??e.commitment,endpoint:n.endpoint??e.endpoint,websocketEndpoint:n.websocketEndpoint??e.websocketEndpoint}:e}t(be,"applySerializableState");function he(e){return JSON.stringify(e)}t(he,"serializeSolanaState");function An(e){if(!e)return null;try{let n=JSON.parse(e);if(typeof n!="object"||n===null)return null;let r=n;return {autoconnect:r.autoconnect??!1,commitment:r.commitment,endpoint:r.endpoint,lastConnectorId:r.lastConnectorId??null,lastPublicKey:r.lastPublicKey??null,version:r.version??1,websocketEndpoint:r.websocketEndpoint}}catch{return null}}t(An,"deserializeSolanaState");function st(e){let n=e.store.getState(),r=n.wallet,o=r.autoConnect,i=null,l=null;return "connectorId"in r&&(i=r.connectorId??null,r.status==="connected"&&(l=r.session.account.address.toString())),{autoconnect:o??!!i,commitment:n.cluster.commitment,endpoint:n.cluster.endpoint,lastConnectorId:i,lastPublicKey:l,version:1,websocketEndpoint:n.cluster.websocketEndpoint}}t(st,"getSerializableStateSnapshot");function Rn(e,n){let r=he(st(e));return n(JSON.parse(r)),e.store.subscribe(()=>{let i=st(e),l=he(i);l!==r&&(r=l,n(i));})}t(Rn,"subscribeSolanaState");function ct(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("ws://")||e.startsWith("wss://")?e:`https://${e}`}t(ct,"ensureHttpProtocol");var Wn={devnet:{endpoint:"https://api.devnet.solana.com",websocketEndpoint:"wss://api.devnet.solana.com"},localhost:{endpoint:"http://127.0.0.1:8899",websocketEndpoint:"ws://127.0.0.1:8900"},localnet:{endpoint:"http://127.0.0.1:8899",websocketEndpoint:"ws://127.0.0.1:8900"},"mainnet-beta":{endpoint:"https://api.mainnet-beta.solana.com",websocketEndpoint:"wss://api.mainnet-beta.solana.com"},mainnet:{endpoint:"https://api.mainnet-beta.solana.com",websocketEndpoint:"wss://api.mainnet-beta.solana.com"},testnet:{endpoint:"https://api.testnet.solana.com",websocketEndpoint:"wss://api.testnet.solana.com"}};function xn(e){return e.startsWith("https://")?e.replace("https://","wss://"):e.startsWith("http://")?e.replace("http://","ws://"):(e.startsWith("ws://")||e.startsWith("wss://"),e)}t(xn,"inferWebsocketEndpoint");function ne(e){let n=e.moniker??(e.endpoint?"custom":"devnet"),r=n==="custom"?void 0:Wn[n],o=ct(e.endpoint??r?.endpoint),i=e.websocketEndpoint?ct(e.websocketEndpoint):void 0,l=xn(i??r?.websocketEndpoint??o);return {endpoint:o,moniker:n,websocketEndpoint:l}}t(ne,"resolveCluster");function Ce(e){let n=new Map;for(let r of e)n.has(r.id)||n.set(r.id,r);return {all:[...n.values()],get(r){return n.get(r)}}}t(Ce,"createWalletRegistry");function Dn(e,n){e.setState(r=>({...r,...n,lastUpdatedAt:x()}));}t(Dn,"updateState");function pt({connectors:e,logger:n,runtime:r,store:o}){let i=n??X(),l;function y(p){return p??o.getState().cluster.commitment}t(y,"getCommitment");async function b(p,T){try{let d=x();return await r.rpc.getLatestBlockhash({commitment:T}).send({abortSignal:AbortSignal.timeout(1e4)}),x()-d}catch(d){i({data:{endpoint:p,...E(d)},level:"warn",message:"cluster warmup failed"});return}}t(b,"warmupCluster");async function w(p,T){let d=T?.commitment??o.getState().cluster.commitment,h=T?.websocketEndpoint??p;o.setState(P=>({...P,cluster:{commitment:d,endpoint:p,status:{status:"connecting"},websocketEndpoint:h},lastUpdatedAt:x()}));try{let P=te({commitment:d,endpoint:p,websocketEndpoint:h});r.rpc=P.rpc,r.rpcSubscriptions=P.rpcSubscriptions;let W=await b(p,d);o.setState(k=>({...k,cluster:{commitment:d,endpoint:p,status:{latencyMs:W,status:"ready"},websocketEndpoint:h},lastUpdatedAt:x()}));}catch(P){throw o.setState(W=>({...W,cluster:{commitment:d,endpoint:p,status:{error:P,status:"error"},websocketEndpoint:h},lastUpdatedAt:x()})),i({data:{endpoint:p,...E(P)},level:"error",message:"cluster setup failed"}),P}}t(w,"setCluster");async function S(p,T={}){l?.(),l=void 0;let d=e.get(p);if(!d)throw new Error(`No wallet connector registered for id "${p}".`);if(!d.isSupported())throw new Error(`Wallet connector "${p}" is not supported in this environment.`);let h=T.autoConnect??false;o.setState(P=>({...P,lastUpdatedAt:x(),wallet:{autoConnect:h,connectorId:p,status:"connecting"}}));try{let P=await d.connect(T);return o.setState(W=>({...W,lastUpdatedAt:x(),wallet:{autoConnect:h,connectorId:p,session:P,status:"connected"}})),P.onAccountsChanged&&(l=P.onAccountsChanged(W=>{W.length===0&&(l?.(),l=void 0,c());})),i({data:{address:P.account.address.toString(),connectorId:p},level:"info",message:"wallet connected"}),P}catch(P){throw o.setState(W=>({...W,lastUpdatedAt:x(),wallet:{autoConnect:h,connectorId:p,error:P,status:"error"}})),i({data:{connectorId:p,...E(P)},level:"error",message:"wallet connection failed"}),P}}t(S,"connectWallet");async function c(){let p=o.getState().wallet;if(p.status!=="disconnected"){l?.(),l=void 0;try{if(p.status==="connected"){await p.session.disconnect();let T=e.get(p.connectorId);T&&await T.disconnect();}else if(p.status==="connecting"){let T=e.get(p.connectorId);T&&await T.disconnect();}}finally{Dn(o,{wallet:{status:"disconnected"}});}}}t(c,"disconnectWallet");async function s(p,T){let d=p.toString();o.setState(h=>({...h,accounts:{...h.accounts,[d]:{address:p,data:h.accounts[d]?.data,error:void 0,executable:h.accounts[d]?.executable??null,fetching:true,lamports:h.accounts[d]?.lamports??null,lastFetchedAt:x(),owner:h.accounts[d]?.owner??null,slot:h.accounts[d]?.slot??null}},lastUpdatedAt:x()}));try{let h=await r.rpc.getBalance(p,{commitment:y(T)}).send({abortSignal:AbortSignal.timeout(1e4)}),P=h.value;return o.setState(W=>({...W,accounts:{...W.accounts,[d]:{address:p,data:W.accounts[d]?.data,error:void 0,executable:W.accounts[d]?.executable??null,fetching:!1,lamports:P,lastFetchedAt:x(),owner:W.accounts[d]?.owner??null,slot:h.context.slot}},lastUpdatedAt:x()})),P}catch(h){throw o.setState(P=>({...P,accounts:{...P.accounts,[d]:{address:p,data:P.accounts[d]?.data,error:h,executable:P.accounts[d]?.executable??null,fetching:false,lamports:P.accounts[d]?.lamports??null,lastFetchedAt:x(),owner:P.accounts[d]?.owner??null,slot:P.accounts[d]?.slot??null}},lastUpdatedAt:x()})),i({data:{address:d,...E(h)},level:"error",message:"balance fetch failed"}),h}}t(s,"fetchBalance");async function a(p,T){let d=p.toString();o.setState(h=>({...h,accounts:{...h.accounts,[d]:{address:p,data:h.accounts[d]?.data,error:void 0,executable:h.accounts[d]?.executable??null,fetching:true,lamports:h.accounts[d]?.lamports??null,lastFetchedAt:x(),owner:h.accounts[d]?.owner??null,slot:h.accounts[d]?.slot??null}},lastUpdatedAt:x()}));try{let h=await r.rpc.getAccountInfo(p,{commitment:y(T),encoding:"base64"}).send({abortSignal:AbortSignal.timeout(1e4)}),P=h.value,W=P?.lamports??null,k=P?.executable??null,R=P?.owner??null;return o.setState(O=>({...O,accounts:{...O.accounts,[d]:{address:p,data:P,error:void 0,executable:k,fetching:!1,lamports:W,lastFetchedAt:x(),owner:R,slot:h.context.slot}},lastUpdatedAt:x()})),o.getState().accounts[d]}catch(h){throw o.setState(P=>({...P,accounts:{...P.accounts,[d]:{address:p,data:P.accounts[d]?.data,error:h,executable:P.accounts[d]?.executable??null,fetching:false,lamports:P.accounts[d]?.lamports??null,lastFetchedAt:x(),owner:P.accounts[d]?.owner??null,slot:P.accounts[d]?.slot??null}},lastUpdatedAt:x()})),i({data:{address:d,...E(h)},level:"error",message:"account fetch failed"}),h}}t(a,"fetchAccount");async function m(p,T){let d=await fetchAddressLookupTable(r.rpc,p,{commitment:y(T)}),{addresses:h,authority:P,deactivationSlot:W,lastExtendedSlot:k,lastExtendedSlotStartIndex:R}=d.data;return {addresses:h,authority:isSome(P)?P.value:void 0,deactivationSlot:W,lastExtendedSlot:k,lastExtendedSlotStartIndex:R}}t(m,"fetchLookupTable");async function u(p,T){return p.length===0?[]:(await fetchAllAddressLookupTable(r.rpc,p,{commitment:y(T)})).map(({data:h})=>({addresses:h.addresses,authority:isSome(h.authority)?h.authority.value:void 0,deactivationSlot:h.deactivationSlot,lastExtendedSlot:h.lastExtendedSlot,lastExtendedSlotStartIndex:h.lastExtendedSlotStartIndex}))}t(u,"fetchLookupTables");async function f(p,T){let d=await fetchNonce(r.rpc,p,{commitment:y(T)});return {authority:d.data.authority,blockhash:d.data.blockhash}}t(f,"fetchNonceAccount");async function C(p,T){let d=y(T),h=new AbortController,P=await r.rpc.sendTransaction(getBase64EncodedWireTransaction(p),{encoding:"base64",preflightCommitment:d}).send({abortSignal:h.signal}),W=P.toString();o.setState(O=>({...O,lastUpdatedAt:x(),transactions:{...O.transactions,[W]:{lastUpdatedAt:x(),signature:P,status:"sending"}}}));let k=createBlockHeightExceedencePromiseFactory({rpc:r.rpc,rpcSubscriptions:r.rpcSubscriptions}),R=createRecentSignatureConfirmationPromiseFactory({rpc:r.rpc,rpcSubscriptions:r.rpcSubscriptions});try{return await waitForRecentTransactionConfirmation({abortSignal:h.signal,commitment:d,getBlockHeightExceedencePromise:k,getRecentSignatureConfirmationPromise:R,transaction:p}),o.setState(O=>({...O,lastUpdatedAt:x(),transactions:{...O.transactions,[W]:{lastUpdatedAt:x(),signature:P,status:"confirmed"}}})),P}catch(O){throw o.setState(I=>({...I,lastUpdatedAt:x(),transactions:{...I.transactions,[W]:{error:O,lastUpdatedAt:x(),signature:P,status:"failed"}}})),i({data:{signature:W,...E(O)},level:"error",message:"transaction failed to confirm"}),O}}t(C,"sendTransaction");async function g(p,T){try{let h=await airdropFactory({rpc:r.rpc,rpcSubscriptions:r.rpcSubscriptions})({commitment:y("confirmed"),lamports:T,recipientAddress:p});return i({data:{address:p.toString(),lamports:T.toString(),signature:h},level:"info",message:"airdrop requested"}),h}catch(d){throw i({data:{address:p.toString(),lamports:T.toString(),...E(d)},level:"error",message:"airdrop request failed"}),d}}return t(g,"requestAirdrop"),{connectWallet:S,disconnectWallet:c,fetchAccount:a,fetchBalance:s,fetchLookupTable:m,fetchLookupTables:u,fetchNonceAccount:f,requestAirdrop:g,sendTransaction:C,setCluster:w}}t(pt,"createActions");var Hn=10n;function we(e){return ce(e,"exponent"),Hn**BigInt(e)}t(we,"pow10");function H(e,n="value"){if(e<0n)throw new RangeError(`${n} must be non-negative`)}t(H,"assertNonNegative");function ce(e,n="decimals"){if(!Number.isInteger(e)||e<0||e>38)throw new RangeError(`${n} must be an integer between 0 and 38`)}t(ce,"assertDecimals");function j(e,n="value"){if(typeof e=="bigint")return e;if(typeof e=="number"){if(!Number.isFinite(e)||!Number.isInteger(e))throw new RangeError(`${n} must be a finite integer when provided as a number`);if(!Number.isSafeInteger(e))throw new RangeError(`${n} must be within the safe integer range when provided as a number`);return BigInt(e)}let r=e.trim(),o=/^[-+]?\d+$/.exec(r);if(!o)throw new SyntaxError(`${n} must be an integer string`);return BigInt(o[0])}t(j,"toBigint");function Pe(e,n,r="result"){let o=e+n;return H(o,r),o}t(Pe,"checkedAdd");function ke(e,n,r="result"){let o=e-n;return H(o,r),o}t(ke,"checkedSubtract");function _n(e,n,r="result"){let o=e*n;return H(o,r),o}t(_n,"checkedMultiply");function Fn(e,n,r="result"){if(n===0n)throw new RangeError("divisor must be non-zero");let o=e/n;return H(o,r),o}t(Fn,"checkedDivide");function Nn(e,n,r){if(n<=0n)throw new RangeError("divisor must be positive");let o=e/n,i=e%n;if(i===0n)return o;switch(r){case "ceil":return o+1n;case "round":return i*2n>=n?o+1n:o;default:return o}}t(Nn,"divideWithRounding");function zn(e,n){let r=j(e,"numerator"),o=j(n,"denominator");if(o<=0n)throw new RangeError("denominator must be positive");return H(r,"numerator"),Object.freeze({denominator:o,numerator:r})}t(zn,"createRatio");function Ae(e,n,r={}){H(e,"amount");let o=e*n.numerator,i=r.rounding??"floor";return Nn(o,n.denominator,i)}t(Ae,"applyRatio");var Vn=/^\d+(?:\.\d+)?$/;function Kn(e,n,r){if(!Number.isFinite(e))throw new RangeError(`${r} must be a finite number`);if(Number.isInteger(e))return e.toString(10);let o=e.toString(10);if(o.includes("e")||o.includes("E"))throw new RangeError(`${r} cannot use exponential notation; provide a string instead`);let i=o.split(".");if(i[1]&&i[1].length>n+6)throw new RangeError(`${r} exceeds safe precision; provide a string instead`);return o}t(Kn,"normalizeNumberInput");function ut(e,n,r,o){let i=o.label??"value",l=o.rounding??"floor",y=e.replace(/_/g,"").trim();if(y==="")throw new SyntaxError(`${i} must not be empty`);if(!Vn.test(y))throw new SyntaxError(`${i} must be a non-negative decimal string`);let[b,w]=y.split("."),S=b||"0";H(BigInt(S),i);let c=BigInt(S)*r,s=w??"";if(n===0){if(s.length===0)return c;let u=/[1-9]/.test(s);return l==="ceil"&&u||l==="round"&&s[0]!==void 0&&s[0]>="5"?c+1n:c}let a=s.slice(0,n).padEnd(n,"0"),m=a===""?0n:BigInt(a);if(c+=m,s.length>n){let u=s.slice(n),f=/[1-9]/.test(u);if(l==="ceil"&&f)c+=1n;else if(l==="round"){let C=u[0];C!==void 0&&C>="5"&&(c+=1n);}}return c}t(ut,"decimalToBaseUnits");function jn(e,n,r,o){H(e,"amount");let i=o.minimumFractionDigits??0;if(i<0||i>n)throw new RangeError("minimumFractionDigits must be between 0 and the token decimals");let l=o.trimTrailingZeros??true;if(n===0)return e.toString();let y=e/r,b=(e%r).toString().padStart(n,"0");return l&&(b=b.replace(/0+$/,"")),b.length<i&&(b=b.padEnd(i,"0")),b.length===0?y.toString():`${y.toString()}.${b}`}t(jn,"formatBaseUnits");function re(e){ce(e,"decimals");let n=we(e);function r(c,s){let a=j(c,s??"amount");return H(a,s??"amount"),a}t(r,"fromBaseUnits");function o(c,s={}){let a=s.label??"value";if(typeof c=="number"){if(Number.isInteger(c)){if(!Number.isSafeInteger(c))throw new RangeError(`${a} must be within the safe integer range when provided as a number`);return r(BigInt(c)*n,a)}if(e===0)throw new RangeError(`${a} cannot include fractional digits for a token with 0 decimals`);let m=Kn(c,e,a);return ut(m,e,n,s)}return ut(c,e,n,s)}t(o,"fromDecimal");function i(c,s={}){return jn(r(c),e,n,s)}t(i,"toDecimalString");function l(c,s){return Pe(r(c),r(s))}t(l,"add");function y(c,s){return ke(r(c),r(s))}t(y,"subtract");function b(c,s,a){return Ae(r(c),s,a)}t(b,"multiplyByRatio");function w(c){return r(c)===0n}t(w,"isZero");function S(c,s){let a=r(c),m=r(s);return a>m?1:a<m?-1:0}return t(S,"compare"),Object.freeze({add:l,compare:S,decimals:e,fromBaseUnits:r,fromDecimal:o,isZero:w,multiplyByRatio:b,scale:n,subtract:y,toDecimalString:i})}t(re,"createTokenAmount");var _=re(9),qn=_.scale,N=Object.freeze({add(e,n){return _.add(e,n)},compare(e,n){return _.compare(e,n)},decimals:_.decimals,fromLamports(e,n){return _.fromBaseUnits(e,n)},fromSol(e,n){return _.fromDecimal(e,n)},isZero(e){return _.isZero(e)},multiplyByRatio(e,n,r){return _.multiplyByRatio(e,n,r)},raw:_,scale:_.scale,subtract(e,n){return _.subtract(e,n)},toSolString(e,n){return _.toDecimalString(e,n)}});function Re(e,n){return N.fromLamports(e,n)}t(Re,"lamports");function $n(e,n){return N.fromSol(e,n)}t($n,"lamportsFromSol");function Gn(e,n){return N.toSolString(e,n)}t(Gn,"lamportsToSolString");function z(e){return typeof e!="object"||e===null?false:"account"in e&&"connector"in e&&"disconnect"in e}t(z,"isWalletSession");function V(e,n={}){let{commitment:r}=n,o=e.account.address;if(e.signTransaction){let i=e.signTransaction.bind(e);return {mode:"partial",signer:Object.freeze({address:o,async modifyAndSignTransactions(y){let b=[];for(let w of y){let S=w,c=await i(S);if(!c.signatures[o])throw new Error("Wallet did not populate the expected fee payer signature.");let a=Object.freeze({...S,messageBytes:c.messageBytes,signatures:Object.freeze({...S.signatures,...c.signatures})});b.push(a);}return Object.freeze(b)},async signTransactions(y){let b=await this.modifyAndSignTransactions(y);return Object.freeze(b.map(w=>{let S=w.signatures[o];if(!S)throw new Error("Expected signer to produce a signature for the provided address.");return Object.freeze({[o]:S})}))}})}}if(e.sendTransaction){let i=getBase58Encoder(),l=e.sendTransaction.bind(e);return {mode:"send",signer:Object.freeze({address:o,async signAndSendTransactions(b){let w=[];for(let S of b){let c=await l(S,r?{commitment:r}:void 0),s=i.encode(c);w.push(signatureBytes(s));}return w}})}}throw new Error("Wallet session does not support signing or sending transactions.")}t(V,"createWalletTransactionSigner");function K(e){return isTransactionPartialSigner(e)?"partial":isTransactionSendingSigner(e)?"send":"partial"}t(K,"resolveSignerMode");function dr(e){return typeof e=="string"?address(e):e}t(dr,"ensureAddress");async function mr(e,n,r){if(r)return r;let{value:o}=await e.rpc.getLatestBlockhash({commitment:n}).send();return o}t(mr,"resolveLifetime");function fr(e,n){if(z(e)){let{signer:r,mode:o}=V(e,{commitment:n});return {mode:o,signer:r}}return {mode:K(e),signer:e}}t(fr,"resolveSigner");function gr(e){return N.fromLamports(e)}t(gr,"toLamportAmount");function We(e){async function n(i){let l=i.commitment,y=await mr(e,l,i.lifetime),{signer:b,mode:w}=fr(i.authority,l),S=dr(i.destination),c=gr(i.amount),s=pipe(createTransactionMessage({version:i.transactionVersion??0}),a=>setTransactionMessageFeePayer(b.address,a),a=>setTransactionMessageLifetimeUsingBlockhash(y,a),a=>appendTransactionMessageInstruction(getTransferSolInstruction({amount:c,destination:S,source:b}),a));return {commitment:l,lifetime:y,message:s,mode:w,signer:b,plan:singleTransactionPlan(s)}}t(n,"prepareTransfer");async function r(i,l={}){if(i.mode==="send"&&isTransactionSendingSigner(i.signer)){let c=await signAndSendTransactionMessageWithSigners(i.message,{abortSignal:l.abortSignal,minContextSlot:l.minContextSlot}),s=getBase58Decoder();return signature(s.decode(c))}let y=l.commitment??i.commitment,b=l.maxRetries===void 0?void 0:typeof l.maxRetries=="bigint"?l.maxRetries:BigInt(l.maxRetries),w=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(c,s={}){let a=await signTransactionMessageWithSigners(c,{abortSignal:s.abortSignal??l.abortSignal,minContextSlot:l.minContextSlot}),m=getBase64EncodedWireTransaction(a),u=await e.rpc.sendTransaction(m,{encoding:"base64",maxRetries:b,preflightCommitment:y,skipPreflight:l.skipPreflight}).send({abortSignal:s.abortSignal??l.abortSignal});return w=signature(u),{transaction:a}}})(i.plan??singleTransactionPlan(i.message),{abortSignal:l.abortSignal}),!w)throw new Error("Failed to resolve transaction signature.");return w}t(r,"sendPreparedTransfer");async function o(i,l){let y=await n(i);return await r(y,l)}return t(o,"sendTransfer"),{prepareTransfer:n,sendPreparedTransfer:r,sendTransfer:o}}t(We,"createSolTransferHelper");var Sr={token:TOKEN_PROGRAM_ADDRESS,"token-2022":TOKEN_2022_PROGRAM_ADDRESS};async function xe(e,n,r){let{value:o}=await e.rpc.getAccountInfo(n,{commitment:r,encoding:"base64"}).send();if(!o)throw new Error(`Mint account ${n} does not exist. Provide an explicit tokenProgram when working with non-existent mints.`);let i=o.owner;if(i===TOKEN_PROGRAM_ADDRESS)return {programId:"token",programAddress:address(TOKEN_PROGRAM_ADDRESS)};if(i===TOKEN_2022_PROGRAM_ADDRESS)return {programId:"token-2022",programAddress:address(TOKEN_2022_PROGRAM_ADDRESS)};throw new Error(`Mint ${n} is owned by unknown program ${i}. Expected Token Program or Token 2022 Program.`)}t(xe,"detectTokenProgram");function yr(e){let n=e;return n===TOKEN_PROGRAM_ADDRESS||n===TOKEN_2022_PROGRAM_ADDRESS}t(yr,"isKnownTokenProgram");function $(e,n){if(e)return typeof e=="string"?address(e):e;if(!n)throw new Error("An address value was expected but not provided.");return n}t($,"ensureAddress");async function Hr(e,n,r){if(r)return r;let{value:o}=await e.rpc.getLatestBlockhash({commitment:n}).send();return o}t(Hr,"resolveLifetime");function _r(e,n){if(z(e)){let{signer:r,mode:o}=V(e,{commitment:n});return {mode:o,signer:r}}return {mode:K(e),signer:e}}t(_r,"resolveSigner");function Oe(e,n){let r=$(n.mint),o=n.decimals,i,l=n.tokenProgram&&n.tokenProgram!=="auto"?$(n.tokenProgram):void 0,y=n.tokenProgram==="auto"?void 0:n.tokenProgram?n.tokenProgram===TOKEN_2022_PROGRAM_ADDRESS||typeof n.tokenProgram=="string"&&n.tokenProgram===TOKEN_2022_PROGRAM_ADDRESS:false;async function b(f){if(l)return l;if(n.tokenProgram==="auto"){let C=await xe(e,r,f);l=C.programAddress,y=C.programId==="token-2022";}else l=address(TOKEN_PROGRAM_ADDRESS),y=false;return l}t(b,"resolveTokenProgram");async function w(f){return o!==void 0||(o=(await(await b(f)===TOKEN_2022_PROGRAM_ADDRESS?fetchMint:fetchMint$1)(e.rpc,r,{commitment:f})).data.decimals),o}t(w,"resolveDecimals");async function S(f){if(i)return i;let C=await w(f);return i=re(C),i}t(S,"getTokenMath");async function c(f,C){let g=await b(C),[p]=await findAssociatedTokenPda({mint:r,owner:$(f),tokenProgram:g});return p}t(c,"deriveAssociatedTokenAddress");async function s(f,C){let g=await c(f,C),p=await w(C);try{let{value:T}=await e.rpc.getTokenAccountBalance(g,{commitment:C}).send(),h=(await S(C)).fromBaseUnits(T.amount,"balance"),P=T.uiAmountString??T.amount;return {amount:h,ataAddress:g,decimals:p,exists:!0,uiAmount:P}}catch{return {amount:0n,ataAddress:g,decimals:p,exists:false,uiAmount:"0"}}}t(s,"fetchBalance");async function a(f){let C=f.commitment,g=await b(C),p=await Hr(e,C,f.lifetime),{signer:T,mode:d}=_r(f.authority,C),h=$(f.sourceOwner,T.address),P=$(f.destinationOwner),W=$(f.sourceToken,await c(h,C)),k=$(f.destinationToken,await c(P,C)),R=await S(C),O=await w(C),I=f.amountInBaseUnits?R.fromBaseUnits(f.amount,"amount"):R.fromDecimal(f.amount,{label:"amount"}),q=[];if(f.ensureDestinationAta??true){let{value:A}=await e.rpc.getAccountInfo(k,{commitment:C,dataSlice:{length:0,offset:0},encoding:"base64"}).send();A||q.push(getCreateAssociatedTokenInstruction({ata:k,mint:r,owner:P,payer:T,tokenProgram:g}));}let ye=y?getTransferCheckedInstruction:getTransferCheckedInstruction$1;q.push(ye({amount:I,authority:T,decimals:O,destination:k,mint:r,source:W}));let J=pipe(createTransactionMessage({version:f.transactionVersion??0}),A=>setTransactionMessageFeePayer(T.address,A),A=>setTransactionMessageLifetimeUsingBlockhash(p,A));for(let A of q)J=appendTransactionMessageInstruction(A,J);return {amount:I,commitment:C,decimals:O,destinationAta:k,lifetime:p,message:J,mode:d,signer:T,sourceAta:W,plan:singleTransactionPlan(J)}}t(a,"prepareTransfer");async function m(f,C={}){if(f.mode==="send"&&isTransactionSendingSigner(f.signer)){let h=await signAndSendTransactionMessageWithSigners(f.message,{abortSignal:C.abortSignal,minContextSlot:C.minContextSlot}),P=getBase58Decoder();return signature(P.decode(h))}let g=C.commitment??f.commitment,p=C.maxRetries===void 0?void 0:typeof C.maxRetries=="bigint"?C.maxRetries:BigInt(C.maxRetries),T=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(h,P={}){let W=await signTransactionMessageWithSigners(h,{abortSignal:P.abortSignal??C.abortSignal,minContextSlot:C.minContextSlot}),k=getBase64EncodedWireTransaction(W),R=await e.rpc.sendTransaction(k,{encoding:"base64",maxRetries:p,preflightCommitment:g,skipPreflight:C.skipPreflight}).send({abortSignal:P.abortSignal??C.abortSignal});return T=signature(R),{transaction:W}}})(f.plan??singleTransactionPlan(f.message),{abortSignal:C.abortSignal}),!T)throw new Error("Failed to resolve transaction signature.");return T}t(m,"sendPreparedTransfer");async function u(f,C){let g=await a(f);try{return await m(g,C)}catch(p){if(isSolanaError(p,SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED)){let T=await a({...f,lifetime:void 0});return await m(T,C)}throw p}}return t(u,"sendTransfer"),{deriveAssociatedTokenAddress:c,fetchBalance:s,prepareTransfer:a,sendPreparedTransfer:m,sendTransfer:u}}t(Oe,"createSplTokenHelper");var Tt="Stake11111111111111111111111111111111111111",ht="SysvarC1ock11111111111111111111111111111111",bt="SysvarStakeHistory1111111111111111111111111",$r="StakeConfig11111111111111111111111111111111",Ct=200;function pe(e){return typeof e=="string"?address(e):e}t(pe,"ensureAddress");async function ze(e,n,r){if(r)return r;let{value:o}=await e.rpc.getLatestBlockhash({commitment:n}).send();return o}t(ze,"resolveLifetime");function Ve(e,n){if(z(e)){let{signer:r,mode:o}=V(e,{commitment:n});return {mode:o,signer:r}}return {mode:K(e),signer:e}}t(Ve,"resolveSigner");function wt(e){return N.fromLamports(e)}t(wt,"toLamportAmount");function Ke(e){async function n(s){let a=s.commitment,m=await ze(e,a,s.lifetime),{signer:u,mode:f}=Ve(s.authority,a),C=pe(s.validatorId),g=wt(s.amount),T=await e.rpc.getMinimumBalanceForRentExemption(BigInt(Ct)).send()+g,d=await generateKeyPairSigner(),h=getCreateAccountInstruction({payer:u,newAccount:d,lamports:T,space:BigInt(Ct),programAddress:Tt}),P=getInitializeInstruction({stake:d.address,arg0:{staker:u.address,withdrawer:u.address},arg1:{unixTimestamp:0n,epoch:0n,custodian:u.address}}),W=getDelegateStakeInstruction({stake:d.address,vote:C,stakeHistory:bt,unused:$r,stakeAuthority:u}),k=pipe(createTransactionMessage({version:s.transactionVersion??0}),R=>setTransactionMessageFeePayer(u.address,R),R=>setTransactionMessageLifetimeUsingBlockhash(m,R),R=>appendTransactionMessageInstructions([h,P,W],R));return {commitment:a,lifetime:m,message:k,mode:f,signer:u,stakeAccount:d,plan:singleTransactionPlan(k)}}t(n,"prepareStake");async function r(s,a={}){if(s.mode==="send"&&isTransactionSendingSigner(s.signer)){let g=await signAndSendTransactionMessageWithSigners(s.message,{abortSignal:a.abortSignal,minContextSlot:a.minContextSlot}),p=getBase58Decoder();return signature(p.decode(g))}let m=a.commitment??s.commitment,u=a.maxRetries===void 0?void 0:typeof a.maxRetries=="bigint"?a.maxRetries:BigInt(a.maxRetries),f=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(g,p={}){let T=await signTransactionMessageWithSigners(g,{abortSignal:p.abortSignal??a.abortSignal,minContextSlot:a.minContextSlot}),d=getBase64EncodedWireTransaction(T),h=await e.rpc.sendTransaction(d,{encoding:"base64",maxRetries:u,preflightCommitment:m,skipPreflight:a.skipPreflight}).send({abortSignal:p.abortSignal??a.abortSignal});return f=signature(h),{transaction:T}}})(s.plan??singleTransactionPlan(s.message),{abortSignal:a.abortSignal}),!f)throw new Error("Failed to resolve transaction signature.");return f}t(r,"sendPreparedStake");async function o(s,a){let m=await n(s);return await r(m,a)}t(o,"sendStake");async function i(s){let a=s.commitment,m=await ze(e,a,s.lifetime),{signer:u,mode:f}=Ve(s.authority,a),C=pe(s.stakeAccount),g=getDeactivateInstruction({stake:C,clockSysvar:ht,stakeAuthority:u}),p=pipe(createTransactionMessage({version:s.transactionVersion??0}),T=>setTransactionMessageFeePayer(u.address,T),T=>setTransactionMessageLifetimeUsingBlockhash(m,T),T=>appendTransactionMessageInstructions([g],T));return {commitment:a,lifetime:m,message:p,mode:f,signer:u,plan:singleTransactionPlan(p)}}t(i,"prepareUnstake");async function l(s,a={}){if(s.mode==="send"&&isTransactionSendingSigner(s.signer)){let g=await signAndSendTransactionMessageWithSigners(s.message,{abortSignal:a.abortSignal,minContextSlot:a.minContextSlot}),p=getBase58Decoder();return signature(p.decode(g))}let m=a.commitment??s.commitment,u=a.maxRetries===void 0?void 0:typeof a.maxRetries=="bigint"?a.maxRetries:BigInt(a.maxRetries),f=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(g,p={}){let T=await signTransactionMessageWithSigners(g,{abortSignal:p.abortSignal??a.abortSignal,minContextSlot:a.minContextSlot}),d=getBase64EncodedWireTransaction(T),h=await e.rpc.sendTransaction(d,{encoding:"base64",maxRetries:u,preflightCommitment:m,skipPreflight:a.skipPreflight}).send({abortSignal:p.abortSignal??a.abortSignal});return f=signature(h),{transaction:T}}})(s.plan),!f)throw new Error("Failed to resolve transaction signature.");return f}t(l,"sendPreparedUnstake");async function y(s,a){let m=await i(s);return await l(m,a)}t(y,"sendUnstake");async function b(s){let a=s.commitment,m=await ze(e,a,s.lifetime),{signer:u,mode:f}=Ve(s.authority,a),C=pe(s.stakeAccount),g=pe(s.destination),p=wt(s.amount),T=getWithdrawInstruction({stake:C,recipient:g,clockSysvar:ht,stakeHistory:bt,withdrawAuthority:u,args:p}),d=pipe(createTransactionMessage({version:s.transactionVersion??0}),h=>setTransactionMessageFeePayer(u.address,h),h=>setTransactionMessageLifetimeUsingBlockhash(m,h),h=>appendTransactionMessageInstructions([T],h));return {commitment:a,lifetime:m,message:d,mode:f,signer:u,plan:singleTransactionPlan(d)}}t(b,"prepareWithdraw");async function w(s,a={}){if(s.mode==="send"&&isTransactionSendingSigner(s.signer)){let g=await signAndSendTransactionMessageWithSigners(s.message,{abortSignal:a.abortSignal,minContextSlot:a.minContextSlot}),p=getBase58Decoder();return signature(p.decode(g))}let m=a.commitment??s.commitment,u=a.maxRetries===void 0?void 0:typeof a.maxRetries=="bigint"?a.maxRetries:BigInt(a.maxRetries),f=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(g,p={}){let T=await signTransactionMessageWithSigners(g,{abortSignal:p.abortSignal??a.abortSignal,minContextSlot:a.minContextSlot}),d=getBase64EncodedWireTransaction(T),h=await e.rpc.sendTransaction(d,{encoding:"base64",maxRetries:u,preflightCommitment:m,skipPreflight:a.skipPreflight}).send({abortSignal:p.abortSignal??a.abortSignal});return f=signature(h),{transaction:T}}})(s.plan),!f)throw new Error("Failed to resolve transaction signature.");return f}t(w,"sendPreparedWithdraw");async function S(s,a){let m=await b(s);return await w(m,a)}t(S,"sendWithdraw");async function c(s,a){let m=typeof s=="string"?s:String(s),u=await e.rpc.getProgramAccounts(Tt,{encoding:"jsonParsed",filters:[{memcmp:{offset:44n,bytes:m,encoding:"base58"}}]}).send();if(!a)return u;let f=typeof a=="string"?a:String(a);return u.filter(C=>{let g=C.account?.data;return g&&"parsed"in g?g.parsed?.info?.stake?.delegation?.voter===f:false})}return t(c,"getStakeAccounts"),{getStakeAccounts:c,prepareStake:n,prepareUnstake:i,prepareWithdraw:b,sendPreparedStake:r,sendPreparedUnstake:l,sendPreparedWithdraw:w,sendStake:o,sendUnstake:y,sendWithdraw:S}}t(Ke,"createStakeHelper");function ee(e){return "messageBytes"in e?getBase64EncodedWireTransaction(e):getBase64EncodedWireTransaction(compileTransaction(e))}t(ee,"transactionToBase64");async function Zr(e){if("messageBytes"in e)return ee(e);let n=await partiallySignTransactionMessageWithSigners(e);return ee(n)}t(Zr,"transactionToBase64WithSigners");var ta=1.1,At=2e5,Wt=14e5;function na(e){return e.programAddress===COMPUTE_BUDGET_PROGRAM_ADDRESS&&e.data?.[0]===2}t(na,"isComputeUnitLimitInstruction");function ra(e){let n=e;for(;isSolanaError(n);){if(isSolanaError(n,SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED))return true;n=n.cause;}return false}t(ra,"didExceedComputeBudget");async function aa(e,n){let r=n;if(!(n.lifetimeConstraint!==void 0)){let l=await e.getLatestBlockhash().send();r=setTransactionMessageLifetimeUsingBlockhash(l.value,n);}let i=ee(r);try{let{value:l}=await e.simulateTransaction(i,{encoding:"base64",replaceRecentBlockhash:!1,sigVerify:!1}).send();return Number(l.unitsConsumed??0)||0}catch(l){if(ra(l))return Wt;throw l}}t(aa,"estimateComputeUnits");async function ie(e){let n=e.computeUnitLimitMultiplier??ta,r=e.blockhashReset!==false,o=e.computeUnitLimitReset??false,i=e.transaction,l=i.instructions.findIndex(na);if(l===-1||o){let b=await aa(e.rpc,i),w=b?Math.ceil(b*n):At,S=Math.min(Wt,Math.max(At,Math.max(1,w))),c=getSetComputeUnitLimitInstruction({units:S});if(l===-1)i=appendTransactionMessageInstruction(c,i);else {let s=[...i.instructions];s.splice(l,1,c),i=Object.freeze({...i,instructions:Object.freeze(s)});}}let y=i.lifetimeConstraint!==void 0;if(r||!y){let b=await e.rpc.getLatestBlockhash().send();y?r&&(i=Object.freeze({...i,lifetimeConstraint:b.value})):i=setTransactionMessageLifetimeUsingBlockhash(b.value,i),y=true;}return e.logRequest&&e.logRequest({base64WireTransaction:ee(i)}),i}t(ie,"prepareTransaction");function ba(e){return typeof e=="string"?address(e):e}t(ba,"toAddress");function Ca(e){return e.some(n=>isInstructionForProgram(n,COMPUTE_BUDGET_PROGRAM_ADDRESS)&&isInstructionWithData(n)&&n.data[0]===ComputeBudgetInstruction.SetComputeUnitLimit)}t(Ca,"hasSetComputeUnitLimitInstruction");function wa(e){return e.some(n=>isInstructionForProgram(n,COMPUTE_BUDGET_PROGRAM_ADDRESS)&&isInstructionWithData(n)&&n.data[0]===ComputeBudgetInstruction.SetComputeUnitPrice)}t(wa,"hasSetComputeUnitPriceInstruction");function Pa(e){return !!("addressTableLookup"in e&&e.addressTableLookup!=null||"addressTableLookups"in e&&Array.isArray(e.addressTableLookups)&&e.addressTableLookups.length>0)}t(Pa,"instructionUsesAddressLookup");function ka(e,n){return e&&e!=="auto"?e:n.some(Pa)?0:"legacy"}t(ka,"resolveVersion");function Aa(e,n){return e.commitment??n()}t(Aa,"normaliseCommitment");function Ra(e,n){if(!e&&!n)throw new Error("A fee payer must be provided via `feePayer` or `authority`.");if(e&&typeof e=="object"&&"address"in e)return {address:e.address,signer:e};if(e){let o=ba(e);return n&&n.address===o?{address:o,signer:n}:{address:o}}if(!n)throw new Error("Unable to resolve authority signer for the fee payer.");return {address:n.address,signer:n}}t(Ra,"resolveFeePayerAddress");function Wa(e,n){let r=e.computeUnitLimit;if(!(r===void 0||Ca(n)))return typeof r=="bigint"?r:BigInt(Math.floor(r))}t(Wa,"resolveComputeUnitLimit");function xa(e,n){if(!(e.computeUnitPrice===void 0||wa(n)))return typeof e.computeUnitPrice=="bigint"?e.computeUnitPrice:BigInt(Math.floor(e.computeUnitPrice))}t(xa,"resolveComputeUnitPrice");async function Mt(e,n){if(!e.instructions.length)throw new Error("Add at least one instruction before preparing a transaction.");let{getFallbackCommitment:r,runtime:o}=n;e.abortSignal?.throwIfAborted();let i=Aa(e,r),l,y="partial";if(e.authority)if(z(e.authority)){let{signer:g,mode:p}=V(e.authority,{commitment:i});l=g,y=p;}else l=e.authority,y=K(l);let{address:b,signer:w}=Ra(e.feePayer,l);y==="send"&&(!w||!isTransactionSendingSigner(w))&&(y="partial");let S=[...e.instructions],c=ka(e.version,S),s=e.lifetime??(await o.rpc.getLatestBlockhash({commitment:i}).send({abortSignal:e.abortSignal})).value;e.abortSignal?.throwIfAborted();let a=Wa(e,S),m=xa(e,S),u=[];a!==void 0&&u.push(getSetComputeUnitLimitInstruction({units:Number(a)})),m!==void 0&&u.push(getSetComputeUnitPriceInstruction({microLamports:Number(m)}));let f=[...u,...S];return Object.freeze({commitment:i,computeUnitLimit:a,computeUnitPrice:m,createTransactionMessage:t(async()=>pipe(createTransactionMessage({version:c}),g=>w?setTransactionMessageFeePayerSigner(w,g):setTransactionMessageFeePayer(b,g),g=>setTransactionMessageLifetimeUsingBlockhash(s,g)),"createMessage"),feePayer:b,instructionPlan:getMessagePackerInstructionPlanFromInstructions(f),instructions:Object.freeze(S),lifetime:s,mode:y,version:c})}t(Mt,"createTransactionRecipe");function La(e){if(e.kind!=="single")throw new Error("Transaction recipe produced a multi-transaction plan which is not supported.");return e}t(La,"assertSingleTransactionPlan");function $e(e,n){async function r(S){let c=await Mt(S,{getFallbackCommitment:n,runtime:e}),a=await createTransactionPlanner({createTransactionMessage:c.createTransactionMessage})(c.instructionPlan,{abortSignal:S.abortSignal}),m=La(a);return Object.freeze({commitment:c.commitment,computeUnitLimit:c.computeUnitLimit,computeUnitPrice:c.computeUnitPrice,feePayer:c.feePayer,instructions:c.instructions,lifetime:c.lifetime,message:m.message,mode:c.mode,plan:a,version:c.version})}t(r,"prepare");async function o(S,c={}){return await signTransactionMessageWithSigners(S.message,{abortSignal:c.abortSignal,minContextSlot:c.minContextSlot})}t(o,"sign");async function i(S,c={}){let s=await o(S,c);return getBase64EncodedWireTransaction(s)}t(i,"toWire");async function l(S,c={}){return !S.plan||S.mode==="send"?y(S,c):b(S,c)}t(l,"send");async function y(S,c){let s=c.commitment??S.commitment;if(S.mode==="send"){let C=await signAndSendTransactionMessageWithSigners(S.message,{abortSignal:c.abortSignal,minContextSlot:c.minContextSlot}),g=getBase58Decoder();return signature(g.decode(C))}let a=await o(S,{abortSignal:c.abortSignal,minContextSlot:c.minContextSlot}),m=getBase64EncodedWireTransaction(a),u=c.maxRetries===void 0?void 0:typeof c.maxRetries=="bigint"?c.maxRetries:BigInt(c.maxRetries),f=await e.rpc.sendTransaction(m,{encoding:"base64",maxRetries:u,preflightCommitment:s,skipPreflight:c.skipPreflight}).send({abortSignal:c.abortSignal});return signature(f)}t(y,"sendDirect");async function b(S,c){if(!S.plan)return y(S,c);let s=c.commitment??S.commitment,a=c.maxRetries===void 0?void 0:typeof c.maxRetries=="bigint"?c.maxRetries:BigInt(c.maxRetries),m=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(f,C={}){let g=await signTransactionMessageWithSigners(f,{abortSignal:C.abortSignal??c.abortSignal,minContextSlot:c.minContextSlot}),p=getBase64EncodedWireTransaction(g),T=await e.rpc.sendTransaction(p,{encoding:"base64",maxRetries:a,preflightCommitment:s,skipPreflight:c.skipPreflight}).send({abortSignal:C.abortSignal??c.abortSignal});return m=signature(T),{transaction:g}}})(S.plan,{abortSignal:c.abortSignal}),!m)throw new Error("Failed to resolve transaction signature.");return m}t(b,"sendWithExecutor");async function w(S,c={}){let{prepareTransaction:s,...a}=S,m=await r(a);if(s===false)return l(m,c);let u=s??{},f=await ie({blockhashReset:u.blockhashReset??false,...u,rpc:e.rpc,transaction:m.message}),C=Object.freeze({...m,message:f,plan:singleTransactionPlan(f)});return l(C,c)}return t(w,"prepareAndSend"),Object.freeze({prepare:r,sign:o,toWire:i,send:l,prepareAndSend:w})}t($e,"createTransactionHelper");var Ze=address("So11111111111111111111111111111111111111112");function Je(e,n){if(e)return typeof e=="string"?address(e):e;if(!n)throw new Error("An address value was expected but not provided.");return n}t(Je,"ensureAddress");async function Nt(e,n,r){if(r)return r;let{value:o}=await e.rpc.getLatestBlockhash({commitment:n}).send();return o}t(Nt,"resolveLifetime");function zt(e,n){if(z(e)){let{signer:r,mode:o}=V(e,{commitment:n});return {mode:o,signer:r}}return {mode:K(e),signer:e}}t(zt,"resolveSigner");function Ka(e){return N.fromLamports(e)}t(Ka,"toLamportAmount");function Xe(e){let n=address(TOKEN_PROGRAM_ADDRESS);async function r(s){let[a]=await findAssociatedTokenPda({mint:Ze,owner:Je(s),tokenProgram:n});return a}t(r,"deriveWsolAddress");async function o(s,a){let m=await r(s);try{let{value:u}=await e.rpc.getTokenAccountBalance(m,{commitment:a}).send();return {amount:BigInt(u.amount),ataAddress:m,exists:!0}}catch{return {amount:0n,ataAddress:m,exists:false}}}t(o,"fetchWsolBalance");async function i(s){let a=s.commitment,m=await Nt(e,a,s.lifetime),{signer:u,mode:f}=zt(s.authority,a),C=Je(s.owner,u.address),g=Ka(s.amount),p=await r(C),T=[getCreateAssociatedTokenIdempotentInstruction({ata:p,mint:Ze,owner:C,payer:u,tokenProgram:n}),getTransferSolInstruction({amount:g,destination:p,source:u}),getSyncNativeInstruction({account:p})],d=pipe(createTransactionMessage({version:s.transactionVersion??0}),h=>setTransactionMessageFeePayer(u.address,h),h=>setTransactionMessageLifetimeUsingBlockhash(m,h),h=>appendTransactionMessageInstructions(T,h));return {amount:g,ataAddress:p,commitment:a,lifetime:m,message:d,mode:f,owner:C,plan:singleTransactionPlan(d),signer:u}}t(i,"prepareWrap");async function l(s){let a=s.commitment,m=await Nt(e,a,s.lifetime),{signer:u,mode:f}=zt(s.authority,a),C=Je(s.owner,u.address),g=await r(C),p=getCloseAccountInstruction({account:g,destination:C,owner:u}),T=pipe(createTransactionMessage({version:s.transactionVersion??0}),d=>setTransactionMessageFeePayer(u.address,d),d=>setTransactionMessageLifetimeUsingBlockhash(m,d),d=>appendTransactionMessageInstruction(p,d));return {ataAddress:g,commitment:a,lifetime:m,message:T,mode:f,owner:C,plan:singleTransactionPlan(T),signer:u}}t(l,"prepareUnwrap");async function y(s,a={}){if(s.mode==="send"&&isTransactionSendingSigner(s.signer)){let g=await signAndSendTransactionMessageWithSigners(s.message,{abortSignal:a.abortSignal,minContextSlot:a.minContextSlot}),p=getBase58Decoder();return signature(p.decode(g))}let m=a.commitment??s.commitment,u=a.maxRetries===void 0?void 0:typeof a.maxRetries=="bigint"?a.maxRetries:BigInt(a.maxRetries),f=null;if(await createTransactionPlanExecutor({async executeTransactionMessage(g,p={}){let T=await signTransactionMessageWithSigners(g,{abortSignal:p.abortSignal??a.abortSignal,minContextSlot:a.minContextSlot}),d=getBase64EncodedWireTransaction(T),h=await e.rpc.sendTransaction(d,{encoding:"base64",maxRetries:u,preflightCommitment:m,skipPreflight:a.skipPreflight}).send({abortSignal:p.abortSignal??a.abortSignal});return f=signature(h),{transaction:T}}})(s.plan??singleTransactionPlan(s.message),{abortSignal:a.abortSignal}),!f)throw new Error("Failed to resolve transaction signature.");return f}t(y,"sendPreparedTransaction");async function b(s,a){return y(s,a)}t(b,"sendPreparedWrap");async function w(s,a){return y(s,a)}t(w,"sendPreparedUnwrap");async function S(s,a){let m=await i(s);try{return await b(m,a)}catch(u){if(isSolanaError(u,SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED)){let f=await i({...s,lifetime:void 0});return await b(f,a)}throw u}}t(S,"sendWrap");async function c(s,a){let m=await l(s);try{return await w(m,a)}catch(u){if(isSolanaError(u,SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED)){let f=await l({...s,lifetime:void 0});return await w(f,a)}throw u}}return t(c,"sendUnwrap"),{deriveWsolAddress:r,fetchWsolBalance:o,prepareUnwrap:l,prepareWrap:i,sendPreparedUnwrap:w,sendPreparedWrap:b,sendUnwrap:c,sendWrap:S}}t(Xe,"createWsolHelper");function D(e,n,r){if(e.commitment!==void 0)return e;let o=r??n();return {...e,commitment:o}}t(D,"withDefaultCommitment");function ja(e,n){return {prepareTransfer:t(r=>e.prepareTransfer(D(r,n)),"prepareTransfer"),sendPreparedTransfer:e.sendPreparedTransfer,sendTransfer:t((r,o)=>e.sendTransfer(D(r,n),o),"sendTransfer")}}t(ja,"wrapSolTransferHelper");function qa(e,n,r){let o=t(i=>i??r??n(),"resolveCommitment");return {deriveAssociatedTokenAddress:e.deriveAssociatedTokenAddress,fetchBalance:t((i,l)=>e.fetchBalance(i,o(l)),"fetchBalance"),prepareTransfer:t(i=>e.prepareTransfer(D(i,n,r)),"prepareTransfer"),sendPreparedTransfer:e.sendPreparedTransfer,sendTransfer:t((i,l)=>e.sendTransfer(D(i,n,r),l),"sendTransfer")}}t(qa,"wrapSplTokenHelper");function $a(e,n){return {getStakeAccounts:e.getStakeAccounts,prepareStake:t(r=>e.prepareStake(D(r,n)),"prepareStake"),prepareUnstake:t(r=>e.prepareUnstake(D(r,n)),"prepareUnstake"),prepareWithdraw:t(r=>e.prepareWithdraw(D(r,n)),"prepareWithdraw"),sendPreparedStake:e.sendPreparedStake,sendPreparedUnstake:e.sendPreparedUnstake,sendPreparedWithdraw:e.sendPreparedWithdraw,sendStake:t((r,o)=>e.sendStake(D(r,n),o),"sendStake"),sendUnstake:t((r,o)=>e.sendUnstake(D(r,n),o),"sendUnstake"),sendWithdraw:t((r,o)=>e.sendWithdraw(D(r,n),o),"sendWithdraw")}}t($a,"wrapStakeHelper");function Ga(e,n){return {deriveWsolAddress:e.deriveWsolAddress,fetchWsolBalance:t((r,o)=>e.fetchWsolBalance(r,o??n()),"fetchWsolBalance"),prepareWrap:t(r=>e.prepareWrap(D(r,n)),"prepareWrap"),prepareUnwrap:t(r=>e.prepareUnwrap(D(r,n)),"prepareUnwrap"),sendPreparedWrap:e.sendPreparedWrap,sendPreparedUnwrap:e.sendPreparedUnwrap,sendWrap:t((r,o)=>e.sendWrap(D(r,n),o),"sendWrap"),sendUnwrap:t((r,o)=>e.sendUnwrap(D(r,n),o),"sendUnwrap")}}t(Ga,"wrapWsolHelper");function ue(e){if(e!=null)return typeof e=="string"?e:typeof e=="object"&&"toString"in e?String(e.toString()):JSON.stringify(e)}t(ue,"normaliseConfigValue");function Ja(e){return JSON.stringify({associatedTokenProgram:ue(e.associatedTokenProgram),commitment:ue(e.commitment),decimals:e.decimals,mint:ue(e.mint),tokenProgram:ue(e.tokenProgram)})}t(Ja,"serialiseSplConfig");function Vt(e,n){let r=t(()=>n.getState().cluster.commitment,"getFallbackCommitment"),o=new Map,i,l,y,b,w=t(()=>(i||(i=ja(We(e),r)),i),"getSolTransfer"),S=t(()=>(l||(l=$a(Ke(e),r)),l),"getStake"),c=t(()=>(y||(y=$e(e,r)),y),"getTransaction"),s=t(()=>(b||(b=Ga(Xe(e),r)),b),"getWsol");function a(u){let f=Ja(u),C=o.get(f);if(C)return C.scoped;let g=Oe(e,u),p=qa(g,r,u.commitment);return o.set(f,{baseCommitment:u.commitment,scoped:p}),p}return t(a,"getSplTokenHelper"),Object.freeze({get solTransfer(){return w()},splToken:a,get stake(){return S()},get transaction(){return c()},get wsol(){return s()},prepareTransaction:t(u=>ie({...u,rpc:e.rpc}),"prepareTransactionWithRuntime")})}t(Vt,"createClientHelpers");function Ya(){return {status:"idle"}}t(Ya,"createClusterStatus");function de(e){let{commitment:n,endpoint:r,websocketEndpoint:o}=e,i=Date.now();return Te({accounts:{},cluster:{commitment:n,endpoint:r,status:Ya(),websocketEndpoint:o},lastUpdatedAt:i,subscriptions:{account:{},signature:{}},transactions:{},wallet:{status:"disconnected"}})}t(de,"createInitialClientState");function me(e){return createStore(()=>e)}t(me,"createClientStore");function Xa(e){return me(de(e))}t(Xa,"createDefaultClientStore");function Kt({logger:e,runtime:n,store:r}){let o=e??X();function i(a,m,u){r.setState(f=>({...f,lastUpdatedAt:x(),subscriptions:{...f.subscriptions,[a]:{...f.subscriptions[a],[m]:u}}}));}t(i,"setSubscriptionStatus");function l(a,m){i(a,m,{status:"inactive"});}t(l,"onAbort");function y(a,m,u){function f(){u.abort(),l(a,m);}return t(f,"abort"),{abort:f}}t(y,"createSubscriptionHandle");async function b(a,m,u){let f=a.commitment??r.getState().cluster.commitment,C=n.rpcSubscriptions.accountNotifications(a.address,{commitment:f}),g=a.address.toString();i("account",g,{status:"activating"}),u.signal.addEventListener("abort",()=>l("account",g));try{let p=await C.subscribe({abortSignal:u.signal});i("account",g,{status:"active"});for await(let T of p){let d=T.value?.lamports??null,h=T.value?.executable??null,P=T.value?.owner??null,W=T.context?.slot??null,k={address:a.address,data:T.value?.data,error:void 0,executable:h,fetching:!1,lamports:d,lastFetchedAt:x(),owner:P,slot:W};m(k),r.setState(R=>({...R,accounts:{...R.accounts,[g]:k},lastUpdatedAt:x()}));}}catch(p){u.signal.aborted||(o({data:{address:g,...E(p)},level:"error",message:"account subscription failed"}),i("account",g,{error:p,status:"error"}));}}t(b,"handleAccountNotifications");function w(a,m){let u=new AbortController;return b(a,m,u).catch(f=>{u.signal.aborted||o({data:{address:a.address.toString(),...E(f)},level:"error",message:"account watcher error"});}),y("account",a.address.toString(),u)}t(w,"watchAccount");function S(a,m){return w(a,u=>{u.lamports!==null&&m(u.lamports);})}t(S,"watchBalance");async function c(a,m,u){let f=a.commitment??r.getState().cluster.commitment,C=n.rpcSubscriptions.signatureNotifications(a.signature,{commitment:f,enableReceivedNotification:a.enableReceivedNotification}),g=a.signature.toString();i("signature",g,{status:"activating"}),u.signal.addEventListener("abort",()=>l("signature",g));try{let p=await C.subscribe({abortSignal:u.signal});i("signature",g,{status:"active"});for await(let T of p)m(T),r.setState(d=>({...d,lastUpdatedAt:x(),transactions:{...d.transactions,[g]:{lastUpdatedAt:x(),signature:a.signature,status:"waiting"}}}));}catch(p){u.signal.aborted||(o({data:{signature:g,...E(p)},level:"error",message:"signature subscription failed"}),i("signature",g,{error:p,status:"error"}));}}t(c,"handleSignatureNotifications");function s(a,m){let u=new AbortController;return c(a,m,u).catch(f=>{u.signal.aborted||o({data:{signature:a.signature.toString(),...E(f)},level:"error",message:"signature watcher error"});}),y("signature",a.signature.toString(),u)}return t(s,"watchSignature"),{watchAccount:w,watchBalance:S,watchSignature:s}}t(Kt,"createWatchers");function Qe(e){let n=e.initialState?be(e,e.initialState):e,r=ne({endpoint:n.rpc??n.endpoint,moniker:n.cluster,websocketEndpoint:n.websocket??n.websocketEndpoint}),o=n.commitment??"confirmed",i=de({commitment:o,endpoint:r.endpoint,websocketEndpoint:r.websocketEndpoint}),l=e.createStore?e.createStore(i):me(i),y=n.rpcClient??te({commitment:o,endpoint:r.endpoint,websocketEndpoint:r.websocketEndpoint}),b={rpc:y.rpc,rpcSubscriptions:y.rpcSubscriptions},w=Ce(n.walletConnectors??[]),S=X(n.logger),c=pt({connectors:w,logger:S,runtime:b,store:l}),s=Kt({logger:S,runtime:b,store:l}),a=Vt(b,l);l.setState(u=>({...u,cluster:{...u.cluster,status:{status:"connecting"}},lastUpdatedAt:x()})),c.setCluster(r.endpoint,{commitment:o,websocketEndpoint:r.websocketEndpoint}).catch(u=>S({data:E(u),level:"error",message:"initial cluster setup failed"}));function m(){l.setState(()=>i);}return t(m,"destroy"),{actions:c,config:e,connectors:w,destroy:m,get helpers(){return a},runtime:b,store:l,get solTransfer(){return a.solTransfer},get SolTransfer(){return a.solTransfer},splToken:a.splToken,SplToken:a.splToken,SplHelper:a.splToken,get stake(){return a.stake},get transaction(){return a.transaction},get wsol(){return a.wsol},prepareTransaction:a.prepareTransaction,watchers:s}}t(Qe,"createClient");var co=getBase58Decoder(),lo=getTransactionDecoder(),qt=getTransactionEncoder();function po(e){return `wallet-standard:${e.name.toLowerCase().replace(/[^a-z0-9]+/g,"-")}`}t(po,"deriveConnectorId");function uo(e){let n=e[0];if(!n)throw new Error("Wallet returned no accounts.");return n}t(uo,"getPrimaryAccount");function mo(e){if(e==="processed"||e==="confirmed"||e==="finalized")return e}t(mo,"mapCommitment");function et(e){return {address:address(e.address),label:e.label,publicKey:new Uint8Array(e.publicKey)}}t(et,"toSessionAccount");function $t(e){let[n]=e.chains??[];return n}t($t,"getChain");async function Gt(e){let n=e.features[StandardDisconnect];n&&await n.disconnect();}t(Gt,"disconnectWallet");function se(e,n={}){let r={canAutoConnect:n.canAutoConnect??!!e.features[StandardConnect],icon:n.icon??e.icon,id:n.id??po(e),kind:n.kind??"wallet-standard",name:n.name??e.name,ready:typeof window<"u"};async function o(y={}){let b=e.features[StandardConnect],w=e.features[StandardEvents],S=!!y.autoConnect,c=y.allowInteractiveFallback??true,s=e.accounts;if(b){let k=t(async R=>b.connect({silent:R}),"connectWithMode");try{let{accounts:R}=await k(S);R.length&&(s=R);}catch(R){if(!S||!c)throw R;let{accounts:O}=await k(false);O.length&&(s=O);}}let a=uo(s),m=et(a),u=e.features[SolanaSignMessage],f=e.features[SolanaSignTransaction],C=e.features[SolanaSignAndSendTransaction],g=n.defaultChain??$t(a),p=u?async k=>{let[R]=await u.signMessage({account:a,message:k});return R.signature}:void 0,T=f?async k=>{let R=new Uint8Array(qt.encode(k)),O=g?{account:a,chain:g,transaction:R}:{account:a,transaction:R},[I]=await f.signTransaction(O);return lo.decode(I.signedTransaction)}:void 0,d=C?async(k,R)=>{let O=new Uint8Array(qt.encode(k)),I=n.defaultChain??$t(a)??"solana:mainnet-beta",[q]=await C.signAndSendTransaction({account:a,chain:I,options:{commitment:mo(R?.commitment)},transaction:O});return co.decode(q.signature)}:void 0;async function h(){P?.(),await Gt(e);}t(h,"disconnectSession");let P,W=w?k=>w.on("change",({accounts:O})=>{if(O){if(!O.length){k([]);return}a=O[0],m=et(a),k(O.map(et));}}):void 0;return {account:m,connector:r,disconnect:h,onAccountsChanged:W?k=>(P=W(k),()=>{P?.(),P=void 0;}):void 0,sendTransaction:d,signMessage:p,signTransaction:T}}t(o,"connect");async function i(){await Gt(e);}t(i,"disconnect");function l(){return typeof window<"u"}return t(l,"isSupported"),{...r,connect:o,disconnect:i,isSupported:l}}t(se,"createWalletStandardConnector");function Zt(e,n){return se(e,n?.(e))}t(Zt,"mapWalletToConnector");function fo(e={}){let{get:n}=getWallets(),r=n().map(i=>Zt(i,e.overrides)),o=new Set;return r.filter(i=>o.has(i.id)?false:(o.add(i.id),true))}t(fo,"getWalletStandardConnectors");function go(e,n={}){let{get:r,on:o}=getWallets(),i=t(()=>{let b=r().map(c=>Zt(c,n.overrides)),w=new Set,S=b.filter(c=>w.has(c.id)?false:(w.add(c.id),true));e(S);},"emit");i();let l=o("register",i),y=o("unregister",i);return ()=>{l(),y();}}t(go,"watchWalletStandardConnectors");function G(e={}){let{get:n}=getWallets(),o=n().filter(l=>e.filter?e.filter(l):true).map(l=>se(l,e.overrides?.(l))),i=new Set;return o.filter(l=>i.has(l.id)?false:(i.add(l.id),true))}t(G,"autoDiscover");function yo(e){return {canAutoConnect:true,id:"wallet-standard:injected",kind:"wallet-standard",name:"Injected Wallet",ready:typeof window<"u",async connect(){let o=getWallets().get().find(i=>StandardConnect in i.features);if(!o)throw new Error("No Wallet Standard wallets available.");return se(o,e).connect()},async disconnect(){},isSupported(){return typeof window<"u"}}}t(yo,"injected");function fe(e){let n=e.toLowerCase();return r=>r.name.toLowerCase().includes(n)}t(fe,"filterByName");function To(...e){let n=e.map(r=>r.toLowerCase());return r=>n.some(o=>r.name.toLowerCase().includes(o))}t(To,"filterByNames");function tt(e){return G({filter:fe("phantom"),overrides:t(()=>({...e,id:"wallet-standard:phantom"}),"overrides")})}t(tt,"phantom");function nt(e){return G({filter:fe("solflare"),overrides:t(()=>({...e,id:"wallet-standard:solflare"}),"overrides")})}t(nt,"solflare");function rt(e){return G({filter:fe("backpack"),overrides:t(()=>({...e,id:"wallet-standard:backpack"}),"overrides")})}t(rt,"backpack");function ho(e){return G({filter:fe("metamask"),overrides:t(()=>({...e,id:"wallet-standard:metamask"}),"overrides")})}t(ho,"metamask");function Xt(){return [...tt(),...nt(),...rt(),...G()]}t(Xt,"defaultWalletConnectors");function ge(e){if(!e)return;let n=e.trim();return n.length?n:void 0}t(ge,"normalizeUrl");function Qt(e={}){let{cluster:n,endpoint:r,rpc:o,websocket:i,websocketEndpoint:l,walletConnectors:y,...b}=e,w=ge(o)??ge(r)??ge(e.endpoint),S=ne({endpoint:w,moniker:n??void 0,websocketEndpoint:ge(i??l)}),c=y===void 0||y==="default"?Xt():y;return {...b,endpoint:S.endpoint,websocketEndpoint:S.websocketEndpoint,walletConnectors:c}}t(Qt,"resolveClientConfig");function bo(e={}){return Qe(Qt(e))}t(bo,"createDefaultClient");function v(){return {status:"idle"}}t(v,"createInitialAsyncState");function L(e,n={}){return {data:n.data,error:n.error,status:e}}t(L,"createAsyncState");function Co(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before sending SOL transfers.");return {...e,authority:r}}t(Co,"ensureAuthority");function wo(e){let n=new Set,r=e.helper,o=e.authorityProvider,i=v();function l(){for(let c of n)c();}t(l,"notify");function y(c){i=c,l();}t(y,"setState");async function b(c,s){let a=Co(c,o);y(L("loading"));try{let m=await r.sendTransfer(a,s);return y(L("success",{data:m})),m}catch(m){throw y(L("error",{error:m})),m}}t(b,"send");function w(c){return n.add(c),()=>{n.delete(c);}}t(w,"subscribe");function S(){y(v());}return t(S,"reset"),{getHelper:t(()=>r,"getHelper"),getState:t(()=>i,"getState"),reset:S,send:b,subscribe:w}}t(wo,"createSolTransferController");function Po(e,n,r){let o=e.authority??n?.();if(!o)throw new Error("Connect a wallet or supply an `authority` before sending SPL tokens.");let i=e.sourceOwner??r?.();if(!i)throw new Error("Unable to resolve a source owner for the SPL token transfer.");return {...e,authority:o,sourceOwner:i}}t(Po,"ensureTransferConfig");function ko(e){let n=e.helper,r=e.authorityProvider,o=e.sourceOwnerProvider,i=new Set,l=v();function y(){for(let s of i)s();}t(y,"notify");function b(s){l=s,y();}t(b,"setState");async function w(s,a){let m=Po(s,s.authority?void 0:r,s.sourceOwner?void 0:o);b(L("loading"));try{let u=await n.sendTransfer(m,a);return b(L("success",{data:u})),u}catch(u){throw b(L("error",{error:u})),u}}t(w,"send");function S(s){return i.add(s),()=>{i.delete(s);}}t(S,"subscribe");function c(){b(v());}return t(c,"reset"),{getHelper:t(()=>n,"getHelper"),getState:t(()=>l,"getState"),reset:c,send:w,subscribe:S}}t(ko,"createSplTransferController");function Ao(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before staking SOL.");return {...e,authority:r}}t(Ao,"ensureAuthority");function Ro(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before unstaking SOL.");return {...e,authority:r}}t(Ro,"ensureUnstakeAuthority");function Wo(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before withdrawing SOL.");return {...e,authority:r}}t(Wo,"ensureWithdrawAuthority");function xo(e){let n=new Set,r=new Set,o=new Set,i=e.helper,l=e.authorityProvider,y=v(),b=v(),w=v();function S(){for(let k of n)k();}t(S,"notify");function c(){for(let k of r)k();}t(c,"notifyUnstake");function s(){for(let k of o)k();}t(s,"notifyWithdraw");function a(k){y=k,S();}t(a,"setState");function m(k){b=k,c();}t(m,"setUnstakeState");function u(k){w=k,s();}t(u,"setWithdrawState");async function f(k,R){let O=Ao(k,l);a(L("loading"));try{let I=await i.sendStake(O,R);return a(L("success",{data:I})),I}catch(I){throw a(L("error",{error:I})),I}}t(f,"stake");async function C(k,R){let O=Ro(k,l);m(L("loading"));try{let I=await i.sendUnstake(O,R);return m(L("success",{data:I})),I}catch(I){throw m(L("error",{error:I})),I}}t(C,"unstake");async function g(k,R){let O=Wo(k,l);u(L("loading"));try{let I=await i.sendWithdraw(O,R);return u(L("success",{data:I})),I}catch(I){throw u(L("error",{error:I})),I}}t(g,"withdraw");function p(k){return n.add(k),()=>{n.delete(k);}}t(p,"subscribe");function T(k){return r.add(k),()=>{r.delete(k);}}t(T,"subscribeUnstake");function d(k){return o.add(k),()=>{o.delete(k);}}t(d,"subscribeWithdraw");function h(){a(v());}t(h,"reset");function P(){m(v());}t(P,"resetUnstake");function W(){u(v());}return t(W,"resetWithdraw"),{getHelper:t(()=>i,"getHelper"),getState:t(()=>y,"getState"),getUnstakeState:t(()=>b,"getUnstakeState"),getWithdrawState:t(()=>w,"getWithdrawState"),reset:h,resetUnstake:P,resetWithdraw:W,stake:f,unstake:C,withdraw:g,subscribe:p,subscribeUnstake:T,subscribeWithdraw:d}}t(xo,"createStakeController");function en(e,n){let r=e.authority??n?.();if(!r)throw new Error("Connect a wallet or supply an `authority` before wrapping/unwrapping SOL.");return {...e,authority:r}}t(en,"ensureAuthority");function Lo(e){let n=new Set,r=new Set,o=e.helper,i=e.authorityProvider,l=v(),y=v();function b(){for(let g of n)g();}t(b,"notifyWrap");function w(){for(let g of r)g();}t(w,"notifyUnwrap");function S(g){l=g,b();}t(S,"setWrapState");function c(g){y=g,w();}t(c,"setUnwrapState");async function s(g,p){let T=en(g,i);S(L("loading"));try{let d=await o.sendWrap(T,p);return S(L("success",{data:d})),d}catch(d){throw S(L("error",{error:d})),d}}t(s,"wrap");async function a(g,p){let T=en(g,i);c(L("loading"));try{let d=await o.sendUnwrap(T,p);return c(L("success",{data:d})),d}catch(d){throw c(L("error",{error:d})),d}}t(a,"unwrap");function m(g){return n.add(g),()=>{n.delete(g);}}t(m,"subscribeWrap");function u(g){return r.add(g),()=>{r.delete(g);}}t(u,"subscribeUnwrap");function f(){S(v());}t(f,"resetWrap");function C(){c(v());}return t(C,"resetUnwrap"),{getHelper:t(()=>o,"getHelper"),getWrapState:t(()=>l,"getWrapState"),getUnwrapState:t(()=>y,"getUnwrapState"),resetWrap:f,resetUnwrap:C,wrap:s,unwrap:a,subscribeWrap:m,subscribeUnwrap:u}}t(Lo,"createWsolController");function Oo(e){return e.toString()}t(Oo,"bigintToJson");function Io(e){return j(e,"bigint")}t(Io,"bigintFromJson");function vo(e){return e.toString()}t(vo,"lamportsToJson");function Mo(e){return Re(e,"lamports")}t(Mo,"lamportsFromJson");var tn={processed:0,confirmed:1,finalized:2},Eo=2e4;function Bo(e){if(e)return typeof e=="string"?signature(e):e}t(Bo,"normalizeSignature");function Do(e){return e?e.confirmationStatus==="processed"||e.confirmationStatus==="confirmed"||e.confirmationStatus==="finalized"?e.confirmationStatus:e.confirmations===null?"finalized":typeof e.confirmations=="number"&&e.confirmations>0?"confirmed":"processed":null}t(Do,"deriveConfirmationStatus");function Ho(e,n){return e?tn[e]>=tn[n]:false}t(Ho,"confirmationMeetsCommitment");var zo="MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";function Vo(e){let n=e.findIndex(r=>r.programAddress!==zo);if(e.length===0||n===-1)throw new SolanaError(SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR,{cause:"At least one non-memo instruction is required.",index:e.length||n});return n}t(Vo,"ensureNonMemoInstructionIndex");function Ko(e,n){return nn([e],n)}t(Ko,"insertReferenceKey");function nn(e,n){let r=Vo(n.instructions),o=n.instructions[r],i=[...o.accounts??[],...e.map(y=>({address:y,role:AccountRole.READONLY}))],l=[...n.instructions];return l.splice(r,1,{...o,accounts:i}),Object.freeze({...n,instructions:Object.freeze(l)})}t(nn,"insertReferenceKeys");function Se(e){let n=e,r=new Set;return {getSnapshot:t(()=>n,"getSnapshot"),setSnapshot(o){n=o;for(let i of r)i();},subscribe(o){return r.add(o),()=>{r.delete(o);}}}}t(Se,"createStore");function rn(e){return Object.freeze([...e])}t(rn,"freezeInstructions");function jo(e){let n=e.helper,r=rn(e.initialInstructions??[]),o=e.blockhashMaxAgeMs??3e4,i,l=Se(r),y=Se(null),b=Se(v()),w=Se(v());function S(){y.setSnapshot(null),b.setSnapshot(v()),w.setSnapshot(v());}t(S,"resetDerivedState");function c(A){l.setSnapshot(rn(A)),S();}t(c,"commitInstructions");function s(A){let M=[...l.getSnapshot(),A];c(M);}t(s,"addInstruction");function a(A){if(!A.length)return;let M=[...l.getSnapshot(),...A];c(M);}t(a,"addInstructions");function m(A){c(A);}t(m,"replaceInstructions");function u(){c([]);}t(u,"clearInstructions");function f(A){let M=l.getSnapshot();if(A<0||A>=M.length)return;let B=M.filter((F,U)=>U!==A);c(B);}t(f,"removeInstruction");function C(){c(r);}t(C,"reset");function g(A){if(!A.length)throw new Error("Add at least one instruction before preparing a transaction.")}t(g,"ensureInstructions");function p(){if(i&&!(Date.now()-i.updatedAt>o))return i.value}t(p,"resolveCachedLifetime");async function T(A={}){let{instructions:M,...B}=A,F=M??l.getSnapshot();g(F),b.setSnapshot(L("loading"));try{let U=B.lifetime??p(),Z=U&&!B.lifetime?{...B,lifetime:U}:B,Y=await n.prepare({...Z,instructions:F});return y.setSnapshot(Y),b.setSnapshot(L("success",{data:Y})),Y}catch(U){throw b.setSnapshot(L("error",{error:U})),U}}t(T,"prepare");function d(A){let M=A??y.getSnapshot();if(!M)throw new Error("Prepare a transaction before sending.");return M}t(d,"resolvePrepared");function h(A){if(A.lifetime)return A;let M=p();return M?{...A,lifetime:M}:A}t(h,"resolveLifetimeOptions");async function P(A={}){let{prepared:M,...B}=A,F=d(M);w.setSnapshot(L("loading"));try{let U=await n.send(F,B);return w.setSnapshot(L("success",{data:U})),U}catch(U){throw w.setSnapshot(L("error",{error:U})),U}}t(P,"send");async function W(A={},M){let{instructions:B,...F}=A,U=B??l.getSnapshot();g(U),w.setSnapshot(L("loading"));try{let Z=h(F),Y=await n.prepareAndSend({...Z,instructions:U},M);return w.setSnapshot(L("success",{data:Y})),Y}catch(Z){throw w.setSnapshot(L("error",{error:Z})),Z}}t(W,"prepareAndSend");function k(A={}){let{prepared:M,...B}=A,F=d(M);return n.sign(F,B)}t(k,"sign");function R(A={}){let{prepared:M,...B}=A,F=d(M);return n.toWire(F,B)}t(R,"toWire");function O(A){return l.subscribe(A)}t(O,"subscribeInstructions");function I(A){return y.subscribe(A)}t(I,"subscribePrepared");function q(A){return b.subscribe(A)}t(q,"subscribePrepareState");function ye(A){return w.subscribe(A)}t(ye,"subscribeSendState");function J(A){i=A;}return t(J,"setLatestBlockhashCache"),{addInstruction:s,addInstructions:a,clearInstructions:u,get helper(){return n},getInstructions:l.getSnapshot,getPrepareState:b.getSnapshot,getPrepared:y.getSnapshot,getSendState:w.getSnapshot,getLatestBlockhashCache:t(()=>i,"getLatestBlockhashCache"),prepare:T,prepareAndSend:W,removeInstruction:f,replaceInstructions:m,reset:C,send:P,setLatestBlockhashCache:J,sign:k,subscribeInstructions:O,subscribePrepareState:q,subscribePrepared:I,subscribeSendState:ye,toWire:R}}t(jo,"createTransactionPoolController");function an(e){return typeof e=="string"?address(e):e}t(an,"toAddress");function $o(e){return an(e).toString()}t($o,"toAddressString");function Go(e){return JSON.stringify(e,(r,o)=>typeof o=="bigint"?{__type:"bigint",value:o.toString()}:o instanceof Uint8Array?Array.from(o):o)??"undefined"}t(Go,"stableStringify");
2
+ export{qn as LAMPORTS_PER_SOL,Eo as SIGNATURE_STATUS_TIMEOUT_MS,Sr as TOKEN_PROGRAMS,Ze as WRAPPED_SOL_MINT,Ae as applyRatio,be as applySerializableState,ce as assertDecimals,H as assertNonNegative,G as autoDiscover,rt as backpack,Io as bigintFromJson,Oo as bigintToJson,Pe as checkedAdd,Fn as checkedDivide,_n as checkedMultiply,ke as checkedSubtract,Ho as confirmationMeetsCommitment,sn as connectWallet,L as createAsyncState,Qe as createClient,me as createClientStore,bo as createDefaultClient,Xa as createDefaultClientStore,v as createInitialAsyncState,de as createInitialClientState,zn as createRatio,wo as createSolTransferController,We as createSolTransferHelper,te as createSolanaRpcClient,Oe as createSplTokenHelper,ko as createSplTransferController,xo as createStakeController,Ke as createStakeHelper,re as createTokenAmount,$e as createTransactionHelper,jo as createTransactionPoolController,Mt as createTransactionRecipe,Ce as createWalletRegistry,se as createWalletStandardConnector,Lo as createWsolController,Xe as createWsolHelper,Xt as defaultWalletConnectors,Do as deriveConfirmationStatus,An as deserializeSolanaState,xe as detectTokenProgram,cn as disconnectWallet,ln as fetchAccount,pn as fetchBalance,un as fetchLookupTable,dn as fetchLookupTables,mn as fetchNonceAccount,To as filterByNames,kn as getInitialSerializableState,fo as getWalletStandardConnectors,yo as injected,Ko as insertReferenceKey,nn as insertReferenceKeys,yr as isKnownTokenProgram,Re as lamports,Mo as lamportsFromJson,$n as lamportsFromSol,N as lamportsMath,vo as lamportsToJson,Gn as lamportsToSolString,ho as metamask,Bo as normalizeSignature,tt as phantom,we as pow10,ie as prepareTransaction,fn as requestAirdrop,Qt as resolveClientConfig,ne as resolveCluster,gn as sendTransaction,he as serializeSolanaState,Sn as setCluster,nt as solflare,Go as stableStringify,Rn as subscribeSolanaState,an as toAddress,$o as toAddressString,j as toBigint,ee as transactionToBase64,Zr as transactionToBase64WithSigners,go as watchWalletStandardConnectors};//# sourceMappingURL=index.browser.mjs.map
3
3
  //# sourceMappingURL=index.browser.mjs.map