@solana/kit 6.3.1 → 6.3.2-canary-20260313112147
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/dist/index.development.js +1 -1
- package/dist/index.development.js.map +1 -1
- package/dist/index.production.min.js +1 -1
- package/package.json +27 -26
- package/src/airdrop-internal.ts +38 -0
- package/src/airdrop.ts +80 -0
- package/src/decompile-transaction-message-fetching-lookup-tables.ts +50 -0
- package/src/fetch-lookup-tables.ts +46 -0
- package/src/get-minimum-balance-for-rent-exemption.ts +26 -0
- package/src/index.ts +43 -0
- package/src/program-client-core.ts +1 -0
- package/src/send-and-confirm-durable-nonce-transaction.ts +172 -0
- package/src/send-and-confirm-transaction.ts +95 -0
- package/src/send-transaction-internal.ts +134 -0
- package/src/send-transaction-without-confirming.ts +52 -0
|
@@ -9,7 +9,7 @@ Logs (last ${n} of ${e.length}):`:`
|
|
|
9
9
|
|
|
10
10
|
Logs:`}
|
|
11
11
|
${t.map(o=>` > ${o}`).join(`
|
|
12
|
-
`)}`}function Sc(e,n){return e?" (preflight)":n?` (${n})`:""}function uT(e){return async(n,{abortSignal:t}={})=>{var a;let r={...e,abortSignal:t,canceled:(a=t==null?void 0:t.aborted)!=null?a:false};vi(n);let o=()=>{r.canceled=true;};t==null||t.addEventListener("abort",o);let i=await Fi(n,r);if(t==null||t.removeEventListener("abort",o),r.canceled){let s=t!=null&&t.aborted?t.reason:void 0;throw IA(i,s)}return i}}async function Fi(e,n){let t=e.kind;switch(t){case "sequential":return await hA(e,n);case "parallel":return await CA(e,n);case "single":return await LA(e,n);default:throw new c(Kn,{kind:t})}}async function hA(e,n){if(!e.divisible)throw new c($n);let t=[];for(let r of e.plans){let o=await Fi(r,n);t.push(o);}return dA(t)}async function CA(e,n){let t=await Promise.all(e.plans.map(r=>Fi(r,n)));return lA(t)}async function LA(e,n){let t={};if(n.canceled)return EA(e.message,t);try{let r=await hn(n.executeTransactionMessage(t,e.message,{abortSignal:n.abortSignal}),n.abortSignal);return typeof r=="string"?RA(e.message,{...t,signature:r}):fA(e.message,r,t)}catch(r){n.canceled=true;let o="transaction"in t&&typeof t.transaction=="object"&&t.signature==null?{...t,signature:Ee(t.transaction)}:t;return AA(e.message,r,o)}}function vi(e){switch(e.kind){case "sequential":if(!e.divisible)throw new c($n);for(let t of e.plans)vi(t);return;case "parallel":for(let t of e.plans)vi(t);return;case "single":default:return}}async function _T(e){try{return await e}catch(n){if(y(n,Hn))return n.context.transactionPlanResult;throw n}}function dT(e){return async(n,{abortSignal:t}={})=>{var o;let r=await ki(n,{abortSignal:t,createTransactionMessage:e.createTransactionMessage,onTransactionMessageUpdated:(o=e.onTransactionMessageUpdated)!=null?o:(i=>i),parent:null,parentCandidates:[]});if(!r)throw new c(Wr);return _t(r)}}async function ki(e,n){var r;(r=n.abortSignal)==null||r.throwIfAborted();let t=e.kind;switch(t){case "sequential":return await bA(e,n);case "parallel":return await DA(e,n);case "single":return await wA(e,n);case "messagePacker":return await yA(e,n);default:throw new c(Rn,{kind:t})}}async function bA(e,n){let t=null;if(n.parent&&(n.parent.kind==="parallel"||!e.divisible)){if(await zi(n,n.parentCandidates,a=>gc(e,a)))return null}else t=n.parentCandidates.length>0?n.parentCandidates[0]:null;let o=[];for(let i of e.plans){let a=await ki(i,{...n,parent:e,parentCandidates:t?[t]:[]});if(a){t=Oc(a);let s=a.kind==="sequential"&&(a.divisible||!e.divisible)?a.plans:[a];o.push(...s);}}return o.length===1?o[0]:o.length===0?null:{divisible:e.divisible,kind:"sequential",planType:"transactionPlan",plans:o}}async function DA(e,n){let t=[...n.parentCandidates],r=[],o=Array.from(e.plans).sort((i,a)=>+(i.kind==="messagePacker")-+(a.kind==="messagePacker"));for(let i of o){let a=await ki(i,{...n,parent:e,parentCandidates:t});if(a){t.push(...PA(a));let s=a.kind==="parallel"?a.plans:[a];r.push(...s);}}return r.length===1?r[0]:r.length===0?null:{kind:"parallel",planType:"transactionPlan",plans:r}}async function wA(e,n){let t=i=>Qe([e.instruction],i);return await zi(n,n.parentCandidates,t)?null:{kind:"single",message:await Nc(n,t),planType:"transactionPlan"}}async function yA(e,n){var i,a;let t=e.getMessagePacker(),r=[],o=[...n.parentCandidates];for(;!t.done();)if(!await zi(n,o,t.packMessageToCapacity)){let _={kind:"single",message:await Nc(n,t.packMessageToCapacity),planType:"transactionPlan"};r.push(_);}return r.length===1?r[0]:r.length===0?null:((i=n.parent)==null?void 0:i.kind)==="parallel"?{kind:"parallel",planType:"transactionPlan",plans:r}:{divisible:((a=n.parent)==null?void 0:a.kind)==="sequential"?n.parent.divisible:true,kind:"sequential",planType:"transactionPlan",plans:r}}function Oc(e){return e.kind==="single"?e:e.kind==="sequential"&&e.plans.length>0?Oc(e.plans[e.plans.length-1]):null}function PA(e){return uc(e)}async function zi(e,n,t){for(let r of n)try{let o=await hn(Promise.resolve(e.onTransactionMessageUpdated(t(r.message),{abortSignal:e.abortSignal})),e.abortSignal);if(ee(o)<=U)return r.message=o,r}catch(o){if(!y(o,Te))throw o}return null}async function Nc(e,n){let t=await hn(Promise.resolve(e.createTransactionMessage({abortSignal:e.abortSignal})),e.abortSignal),r=await hn(Promise.resolve(e.onTransactionMessageUpdated(n(t),{abortSignal:e.abortSignal})),e.abortSignal),o=ee(r);if(o>U){let i=ee(t);throw new c(Te,{numBytesRequired:o-i,numFreeBytes:U-i})}return r}function _t(e){let n=e.kind;switch(n){case "single":return xi(e.message);case "sequential":return e.divisible?sc(e.plans.map(_t)):tA(e.plans.map(_t));case "parallel":return nA(e.plans.map(_t));default:throw new c(Kn,{kind:n})}}function gc(e,n){let t=n,r=e.kind;switch(r){case "sequential":case "parallel":for(let a of e.plans)t=gc(a,t);return t;case "single":t=Qe([e.instruction],n);let o=ee(t);if(o>U){let a=ee(n);throw new c(Te,{numBytesRequired:o-a,numFreeBytes:U-a})}return t;case "messagePacker":let i=e.getMessagePacker();for(;!i.done();)t=i.packMessageToCapacity(t);return t;default:throw new c(Rn,{kind:r})}}function gT(e){return ue(e)}function vA(e){try{_e(e);}catch(n){throw y(n,Ne)?new c(gr,n.context):y(n,Oe)?new c(Tr,n.context):n}}function MA(e){return vA(e),e}function Tc(){return O(G(),e=>MA(e))}function mc(){return P()}function TT(){return A(Tc(),mc())}var pc=new Uint8Array([255,115,111,108,97,110,97,32,111,102,102,99,104,97,105,110]);function Ic(){return Je(pc)}function xA(){return qe(pc)}function hc(...e){return rt(F(e),[Ic()])}function UA(...e){return Xo(M(e),[xA()])}function Gi(e){return n=>{if(n>1)throw new c(Ue,{unsupportedVersion:n});if(e!=null&&n!==e)throw new c(Lr,{actualVersion:n,expectedVersion:e});return n}}function Cc(e,...n){return hc(["version",g(p(),Gi(e))],...n)}function Lc(e,...n){return UA(["version",O(C(),Gi(e))],...n)}function Hi(e){let{version:n,bytesAfterVersion:t}=hc(["version",g(p(),Gi())],["bytesAfterVersion",K()]).decode(e);return An(g(L(P(),{size:p()}),r=>{if(r.length===0)throw new c(le);return r}),{preOffset:({preOffset:r})=>r+(n===0?33:0)}).decode(t)}function bc(){return (e,n)=>{if(e.length!==n.length)return e.length<n.length?-1:1;for(let t=0;t<e.length;t++)if(e[t]!==n[t])return e[t]<n[t]?-1:1;return 0}}function BA(e){let n=Object.values(e);if(n.length===0)throw new c(un);return n.map(t=>t||new Uint8Array(64).fill(0))}function FA(){return O(b(z(j(),64),{size:C()}),BA)}function kA(){return O(M([["signatures",FA()],["content",j()]]),e=>{let n=Object.keys(e.signatures).map($o);if(n.length===0)throw new c(un);let t=Dc(e.content),r=[],o=[];for(let a of t)n.includes(a)||r.push(a);for(let a of n)t.includes(a)||o.push(a);if(r.length||o.length)throw new c(hr,{missingRequiredSigners:r,unexpectedSigners:o});let i={};for(let a of t)i[a]=e.signatures[a];return {...e,signatures:i}})}function zA(){return g(F([["signatures",L(x(K(),64),{size:p()})],["content",K()]]),VA)}function mT(){return A(kA(),zA())}function VA(e){let{content:n,signatures:t}=e;if(t.length===0)throw new c(un);let r=Dc(n);if(r.length!==t.length)throw new c(mr,{numRequiredSignatures:r.length,signatoryAddresses:r,signaturesLength:t.length});let o={};return r.forEach((i,a)=>{let s=t[a];s.every(u=>u===0)?o[i]=null:o[i]=s;}),Object.freeze({content:n,signatures:Object.freeze(o)})}function Dc(e){let n=Hi(e);if(n.length===0)throw new c(le);return n}var Vi=65535,nn=1232,$i=(e=>(e[e.RESTRICTED_ASCII_1232_BYTES_MAX=0]="RESTRICTED_ASCII_1232_BYTES_MAX",e[e.UTF8_1232_BYTES_MAX=1]="UTF8_1232_BYTES_MAX",e[e.UTF8_65535_BYTES_MAX=2]="UTF8_65535_BYTES_MAX",e))($i||{});function wc(e){if(e.format!==0)throw new c(cn,{actualMessageFormat:e.format,expectedMessageFormat:0});if(e.text.length===0)throw new c(ge);if(vc(e.text)===false)throw new c(Nr);let n=Y().getSizeFromValue(e.text);if(n>nn)throw new c(sn,{actualBytes:n,maxBytes:nn})}function pT(e){return e.format!==0||e.text.length===0||vc(e.text)===false?false:Y().getSizeFromValue(e.text)<=nn}function IT(e){let n=Object.freeze({format:0,text:e});return wc(n),n}function yc(e){if(e.text.length===0)throw new c(ge);if(e.format!==1)throw new c(cn,{actualMessageFormat:e.format,expectedMessageFormat:1});let n=Y().getSizeFromValue(e.text);if(n>nn)throw new c(sn,{actualBytes:n,maxBytes:nn})}function hT(e){return e.format!==1||e.text.length===0?false:Y().getSizeFromValue(e.text)<=nn}function CT(e){let n=Object.freeze({format:1,text:e});return yc(n),n}function Pc(e){if(e.format!==2)throw new c(cn,{actualMessageFormat:e.format,expectedMessageFormat:2});if(e.text.length===0)throw new c(ge);let n=Y().getSizeFromValue(e.text);if(n>Vi)throw new c(sn,{actualBytes:n,maxBytes:Vi})}function LT(e){return e.format!==2||e.text.length===0?false:Y().getSizeFromValue(e.text)<=Vi}function bT(e){let n=Object.freeze({format:2,text:e});return Pc(n),n}function vc(e){return /^[\x20-\x7e]+$/.test(e)}function Mc(e){wc(e.content);}function xc(e){yc(e.content);}function Uc(e){Pc(e.content);}function GA(){return Yo($i,{useValuesAsDiscriminators:true})}function HA(){return Wo($i,{useValuesAsDiscriminators:true})}function $A(){return Cc(0,["applicationDomain",mc()],["messageFormat",GA()],["requiredSignatories",g(L(P(),{size:p()}),e=>{if(e.length===0)throw new c(le);return e.map(n=>Object.freeze({address:n}))})],["messageLength",gn()])}function jA(){return Lc(0,["applicationDomain",Tc()],["messageFormat",HA()],["requiredSignatories",O(b(G(),{size:C()}),e=>{if(e.length===0)throw new c(le);return e.map(({address:n})=>n)})],["messageLength",Nn()])}function Bc(){return g(v([$A(),Xn()]),([{messageLength:e,messageFormat:n,requiredSignatories:t,...r},o])=>{let i=Y().getSizeFromValue(o);if(e!==i)throw new c(pr,{actualLength:i,specifiedLength:e});let a=Object.freeze({...r,content:Object.freeze({format:n,text:o}),requiredSignatories:Object.freeze(t)});switch(n){case 0:return Mc(a),a;case 1:return xc(a),a;case 2:return Uc(a),a;default:throw new c(pe,{unexpectedValue:n})}})}function dt(){return O($([jA(),Y()]),e=>{let{content:n,...t}=e;switch(e.content.format){case 0:{Mc(e);break}case 1:{xc(e);break}case 2:{Uc(e);break}default:throw new c(pe,{unexpectedValue:e.content})}let r=Y().getSizeFromValue(n.text);return [{...t,messageFormat:n.format,messageLength:r},n.text]})}function DT(){return A(dt(),Bc())}function KA(){return Cc(1,["requiredSignatories",g(L(x(K(),32),{size:p()}),e=>{if(e.length===0)throw new c(le);let n=bc();for(let r=0;r<e.length-1;r++)switch(n(e[r],e[r+1])){case 0:throw new c(Bn);case 1:throw new c(br)}let t=P();return e.map(r=>Object.freeze({address:t.decode(r)}))})])}function WA(){return Lc(1,["requiredSignatories",O(O(b(j(),{size:C()}),e=>e.toSorted(bc())),e=>{if(e.length===0)throw new c(le);let n=new Set;for(let{address:r}of e){if(n.has(r))throw new c(Bn);n.add(r);}let t=G();return e.map(({address:r})=>t.encode(r))})])}function Fc(){return g(v([KA(),Xn()]),([{requiredSignatories:e,...n},t])=>{if(t.length===0)throw new c(ge);return Object.freeze({...n,content:t,requiredSignatories:Object.freeze(e)})})}function lt(){return O($([WA(),Y()]),e=>{let{content:n,...t}=e;if(n.length===0)throw new c(ge);return [t,n]})}function wT(){return A(lt(),Fc())}function YA(){return S({read(e,n){let t=rt(p(),[Ic()]).decode(e,n);switch(t){case 0:return Bc().read(e,n);case 1:return Fc().read(e,n);default:throw new c(Ue,{unsupportedVersion:t})}}})}function XA(){return N({getSizeFromValue:e=>{let{version:n}=e;switch(n){case 0:return dt().getSizeFromValue(e);case 1:return lt().getSizeFromValue(e);default:throw new c(Ue,{unsupportedVersion:n})}},write:(e,n,t)=>{let{version:r}=e;switch(r){case 0:return dt().write(e,n,t);case 1:return lt().write(e,n,t);default:throw new c(Ue,{unsupportedVersion:r})}}})}function yT(){return A(XA(),YA())}function kc(e,n){let t=n.encode(e),r={};for(let{address:o}of e.requiredSignatories)r[o]=null;return Object.freeze({content:t,signatures:Object.freeze(r)})}function qA(e){return kc(e,dt())}function JA(e){return kc(e,lt())}function zc(e){let{version:n}=e;switch(n){case 0:return qA(e);case 1:return JA(e);default:throw new c(pe,{unexpectedValue:n})}}async function ZA(e,n){let t,r,o=Hi(n.content);if(await Promise.all(e.map(async i=>{let a=await Ke(i.publicKey);if(!o.includes(a)){r||(r=new Set),r.add(a);return}if(r)return;let s=n.signatures[a],u=await Pe(i.privateKey,n.content);s!=null&&he(u,s)||(t||(t={}),t[a]=u);})),r&&r.size>0)throw new c(Cr,{expectedAddresses:o,unexpectedAddresses:[...r]});return t?Object.freeze({...n,signatures:Object.freeze({...n.signatures,...t})}):n}async function PT(e,n){let t=await ZA(e,n);return ji(t),Object.freeze(t),t}function vT(e){return Object.entries(e.signatures).every(([n,t])=>!!t)}function ji(e){let n=[];if(Object.entries(e.signatures).forEach(([t,r])=>{r||n.push(t);}),n.length>0)throw new c(Ir,{addresses:n})}async function MT(e){let n,t=Hi(e.content);if(await Promise.all(t.map(async r=>{let o=e.signatures[r];if(o==null)n||(n={}),n.signatoriesWithMissingSignatures||(n.signatoriesWithMissingSignatures=[]),n.signatoriesWithMissingSignatures.push(r);else {let i=await rs(r);if(await pi(i,o,e.content))return true;n||(n={}),n.signatoriesWithInvalidSignatures||(n.signatoriesWithInvalidSignatures=[]),n.signatoriesWithInvalidSignatures.push(r);}})),n)throw new c(Dr,n)}function UT(){return Ln({})}function Ln(e){return Object.freeze({...e,use(n){let t=n(e);return t instanceof Promise?Vc(t):Ln(t)}})}function Vc(e){return Object.freeze({catch(n){return e.then(t=>Ln(t)).catch(n)},finally(n){return e.then(t=>Ln(t)).finally(n)},then(n,t){return e.then(r=>Ln(r)).then(n,t)},use(n){return Vc(e.then(n))}})}function kT(e,n,t,r){var i;if(!y(e,xn))return false;let o=(i=n.instructions[e.context.index])==null?void 0:i.programAddress;return !o||o!==t?false:typeof r>"u"||e.context.code===r}function ft(e){return JSON.parse(QA(e),(n,t)=>rE(t)?tE(t):t)}function QA(e){let n=[],t=false;for(let r=0;r<e.length;r++){let o=false;if(e[r]==="\\"&&(n.push(e[r++]),o=!o),e[r]==='"'){n.push(e[r]),o||(t=!t);continue}if(!t){let i=eE(e,r);if(i!=null&&i.length){r+=i.length-1,i.match(/\.|[eE]-/)?n.push(i):n.push(nE(i));continue}}n.push(e[r]);}return n.join("")}function eE(e,n){var o;let t=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/;if(!((o=e[n])!=null&&o.match(/[-\d]/)))return null;let r=e.slice(n).match(t);return r?r[0]:null}function nE(e){return `{"$n":"${e}"}`}function tE({$n:e}){if(e.match(/[eE]/)){let[n,t]=e.split(/[eE]/);return BigInt(n)*BigInt(10)**BigInt(t)}return BigInt(e)}function rE(e){return !!e&&typeof e=="object"&&"$n"in e&&typeof e.$n=="string"}var Gc=0n;function oE(){let e=Gc;return Gc++,e.toString()}function tn(e){return {id:oE(),jsonrpc:"2.0",method:e.methodName,params:e.params}}function Rt(e,n){return aE(JSON.stringify(e,(t,r)=>typeof r=="bigint"?iE(r):r,n))}function iE(e){return {$n:`${e}`}}function aE(e){return e.replace(/\{\s*"\$n"\s*:\s*"(-?\d+)"\s*\}/g,"$1")}function Hc(e){return sE(e)}function sE(e){return new Proxy(e.api,{defineProperty(){return false},deleteProperty(){return false},get(n,t,r){if(t!=="then")return function(...o){let i=t.toString(),a=Reflect.get(n,i,r);if(!a)throw new c(go,{method:i,params:o});let s=a(...o);return cE(e,s)}}})}function cE({transport:e},n){return {async send(t){return await n.execute({signal:t==null?void 0:t.abortSignal,transport:e})}}}function $c(e){return new Proxy({},{defineProperty(){return false},deleteProperty(){return false},get(...n){let[t,r]=n,o=r.toString();return function(...i){let a=Object.freeze({methodName:o,params:i}),s=e!=null&&e.requestTransformer?e==null?void 0:e.requestTransformer(a):a;return Object.freeze({execute:async({signal:u,transport:_})=>{let d=tn(s),l=await _({payload:d,signal:u});return e!=null&&e.responseTransformer?e.responseTransformer(l,s):l}})}}})}function At(e){return e==null||typeof e!="object"||Array.isArray(e)?false:"jsonrpc"in e&&e.jsonrpc==="2.0"&&"method"in e&&typeof e.method=="string"&&"params"in e}function uE(e){return typeof e=="bigint"?Number(e):e}var f={};function jc(e){return function n(t,r){if(Array.isArray(t))return t.map((o,i)=>{let a={...r,keyPath:[...r.keyPath,i]};return n(o,a)});if(typeof t=="object"&&t!==null){let o={};for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;let a={...r,keyPath:[...r.keyPath,i]};o[i]=n(t[i],a);}return o}else return e.reduce((o,i)=>i(o,r),t)}}function Kc(e,n){return t=>{let r=jc(e);return Object.freeze({...t,params:r(t.params,n)})}}function Wc(e,n){return t=>jc(e)(t,n)}function _E(){return Kc([uE],{keyPath:[]})}function dE({commitmentPropertyName:e,params:n,optionsObjectPositionInParams:t,overrideCommitment:r}){let o=n[t];if(o===void 0||o&&typeof o=="object"&&!Array.isArray(o)){if(o&&e in o){if(!o[e]||o[e]==="finalized"){let i=[...n],{[e]:a,...s}=o;return Object.keys(s).length>0?i[t]=s:t===i.length-1?i.length--:i[t]=void 0,i}}else if(r!=="finalized"){let i=[...n];return i[t]={...o,[e]:r},i}}return n}function lE({defaultCommitment:e,optionsObjectPositionByMethod:n}){return t=>{let{params:r,methodName:o}=t;if(!Array.isArray(r))return t;let i=n[o];return i==null?t:Object.freeze({methodName:o,params:dE({commitmentPropertyName:o==="sendTransaction"?"preflightCommitment":"commitment",optionsObjectPositionInParams:i,overrideCommitment:e,params:r})})}}function fE(e){return (n,{keyPath:t})=>(typeof n=="bigint"&&e&&(n>Number.MAX_SAFE_INTEGER||n<-Number.MAX_SAFE_INTEGER)&&e(t,n),n)}function RE(e){return n=>Kc([fE((...r)=>e(n,...r))],{keyPath:[]})(n)}var AE={accountNotifications:1,blockNotifications:1,getAccountInfo:1,getBalance:1,getBlock:1,getBlockHeight:0,getBlockProduction:0,getBlocks:2,getBlocksWithLimit:2,getEpochInfo:0,getFeeForMessage:1,getInflationGovernor:0,getInflationReward:1,getLargestAccounts:0,getLatestBlockhash:0,getLeaderSchedule:1,getMinimumBalanceForRentExemption:1,getMultipleAccounts:1,getProgramAccounts:1,getSignaturesForAddress:1,getSlot:0,getSlotLeader:0,getStakeMinimumDelegation:0,getSupply:0,getTokenAccountBalance:1,getTokenAccountsByDelegate:2,getTokenAccountsByOwner:2,getTokenLargestAccounts:1,getTokenSupply:1,getTransaction:1,getTransactionCount:0,getVoteAccounts:0,isBlockhashValid:1,logsNotifications:1,programNotifications:1,requestAirdrop:2,sendTransaction:1,signatureNotifications:1,simulateTransaction:1};function Et(e){let n=e==null?void 0:e.onIntegerOverflow;return t=>W(t,n?RE(n):r=>r,_E(),lE({defaultCommitment:e==null?void 0:e.defaultCommitment,optionsObjectPositionByMethod:AE}))}function Yc(e){return function(t,{keyPath:r}){return typeof t=="number"&&Number.isInteger(t)||typeof t=="bigint"?EE(r,e)?Number(t):BigInt(t):t}}function EE(e,n){return n.some(t=>{if(t.length!==e.length)return false;for(let r=e.length-1;r>=0;r--){let o=e[r],i=t[r];if(i!==o&&(i!==f||typeof o!="number"))return false}return true})}function Xc(e){return Wc([Yc(e)],{keyPath:[]})}function SE(){return e=>e.result}var St=[["data","parsed","info","tokenAmount","decimals"],["data","parsed","info","tokenAmount","uiAmount"],["data","parsed","info","rentExemptReserve","decimals"],["data","parsed","info","rentExemptReserve","uiAmount"],["data","parsed","info","delegatedAmount","decimals"],["data","parsed","info","delegatedAmount","uiAmount"],["data","parsed","info","extensions",f,"state","olderTransferFee","transferFeeBasisPoints"],["data","parsed","info","extensions",f,"state","newerTransferFee","transferFeeBasisPoints"],["data","parsed","info","extensions",f,"state","preUpdateAverageRate"],["data","parsed","info","extensions",f,"state","currentRate"]],de=[...St,["data","parsed","info","lastExtendedSlotStartIndex"],["data","parsed","info","slashPenalty"],["data","parsed","info","warmupCooldownRate"],["data","parsed","info","decimals"],["data","parsed","info","numRequiredSigners"],["data","parsed","info","numValidSigners"],["data","parsed","info","stake","delegation","warmupCooldownRate"],["data","parsed","info","exemptionThreshold"],["data","parsed","info","burnPercent"],["data","parsed","info","commission"],["data","parsed","info","votes",f,"confirmationCount"]],bn=[["index"],["instructions",f,"accounts",f],["instructions",f,"programIdIndex"],["instructions",f,"stackHeight"]],Ki=[["addressTableLookups",f,"writableIndexes",f],["addressTableLookups",f,"readonlyIndexes",f],["header","numReadonlySignedAccounts"],["header","numReadonlyUnsignedAccounts"],["header","numRequiredSignatures"],["instructions",f,"accounts",f],["instructions",f,"programIdIndex"],["instructions",f,"stackHeight"]];function OE(){return [["loadedAccountsDataSize"],...de.map(e=>["accounts",f,...e]),...bn.map(e=>["innerInstructions",f,...e])]}function NE(){return (e,n)=>{let t=e;if("error"in t){let{error:r}=t;if(r&&typeof r=="object"&&"code"in r&&(r.code===-32002||r.code===-32002n)&&"data"in r&&r.data){let a=Wc([Yc(OE())],{keyPath:[]})(r.data,n),s={...r,data:a};throw Ve(s)}throw Ve(t.error)}return t}}function qc(e){return (n,t)=>{let r=t.methodName,o=e!=null&&e.allowedNumericKeyPaths&&r?e.allowedNumericKeyPaths[r]:void 0;return W(n,i=>NE()(i,t),i=>SE()(i,t),i=>Xc(o!=null?o:[])(i,t))}}function Jc(e){return (n,t)=>{let r=t.methodName,o=e!=null&&e.allowedNumericKeyPaths&&r?e.allowedNumericKeyPaths[r]:void 0;return W(n,i=>Xc(o!=null?o:[])(i,t))}}function Zc(e){return $c({requestTransformer:Et(e),responseTransformer:qc({allowedNumericKeyPaths:gE()})})}var Wi;function gE(){return Wi||(Wi={getAccountInfo:de.map(e=>["value",...e]),getBlock:[["transactions",f,"meta","preTokenBalances",f,"accountIndex"],["transactions",f,"meta","preTokenBalances",f,"uiTokenAmount","decimals"],["transactions",f,"meta","postTokenBalances",f,"accountIndex"],["transactions",f,"meta","postTokenBalances",f,"uiTokenAmount","decimals"],["transactions",f,"meta","rewards",f,"commission"],...bn.map(e=>["transactions",f,"meta","innerInstructions",f,...e]),...Ki.map(e=>["transactions",f,"transaction","message",...e]),["rewards",f,"commission"]],getClusterNodes:[[f,"featureSet"],[f,"shredVersion"]],getInflationGovernor:[["initial"],["foundation"],["foundationTerm"],["taper"],["terminal"]],getInflationRate:[["foundation"],["total"],["validator"]],getInflationReward:[[f,"commission"]],getMultipleAccounts:de.map(e=>["value",f,...e]),getProgramAccounts:de.flatMap(e=>[["value",f,"account",...e],[f,"account",...e]]),getRecentPerformanceSamples:[[f,"samplePeriodSecs"]],getTokenAccountBalance:[["value","decimals"],["value","uiAmount"]],getTokenAccountsByDelegate:St.map(e=>["value",f,"account",...e]),getTokenAccountsByOwner:St.map(e=>["value",f,"account",...e]),getTokenLargestAccounts:[["value",f,"decimals"],["value",f,"uiAmount"]],getTokenSupply:[["value","decimals"],["value","uiAmount"]],getTransaction:[["meta","preTokenBalances",f,"accountIndex"],["meta","preTokenBalances",f,"uiTokenAmount","decimals"],["meta","postTokenBalances",f,"accountIndex"],["meta","postTokenBalances",f,"uiTokenAmount","decimals"],["meta","rewards",f,"commission"],...bn.map(e=>["meta","innerInstructions",f,...e]),...Ki.map(e=>["transaction","message",...e])],getVersion:[["feature-set"]],getVoteAccounts:[["current",f,"commission"],["delinquent",f,"commission"]],simulateTransaction:[["value","loadedAccountsDataSize"],...de.map(e=>["value","accounts",f,...e]),...bn.map(e=>["value","innerInstructions",f,...e])]}),Wi}function TE(e){let n={};for(let t in e)n[t.toLowerCase()]=e[t];return n}function mE(e){let{fromJson:n,headers:t,toJson:r,url:o}=e,i,a=t&&TE(t);return async function({payload:u,signal:_}){let d=r?r(u):JSON.stringify(u),l={...i,body:d,headers:{...a,accept:"application/json","content-length":d.length.toString(),"content-type":"application/json; charset=utf-8"},method:"POST",signal:_},R=await fetch(o,l);if(!R.ok)throw new c(No,{headers:R.headers,message:R.statusText,statusCode:R.status});return n?n(await R.text(),u):await R.json()}}var pE=["getAccountInfo","getBalance","getBlock","getBlockCommitment","getBlockHeight","getBlockProduction","getBlocks","getBlocksWithLimit","getBlockTime","getClusterNodes","getEpochInfo","getEpochSchedule","getFeeForMessage","getFirstAvailableBlock","getGenesisHash","getHealth","getHighestSnapshotSlot","getIdentity","getInflationGovernor","getInflationRate","getInflationReward","getLargestAccounts","getLatestBlockhash","getLeaderSchedule","getMaxRetransmitSlot","getMaxShredInsertSlot","getMinimumBalanceForRentExemption","getMultipleAccounts","getProgramAccounts","getRecentPerformanceSamples","getRecentPrioritizationFees","getSignaturesForAddress","getSignatureStatuses","getSlot","getSlotLeader","getSlotLeaders","getStakeMinimumDelegation","getSupply","getTokenAccountBalance","getTokenAccountsByDelegate","getTokenAccountsByOwner","getTokenLargestAccounts","getTokenSupply","getTransaction","getTransactionCount","getVersion","getVoteAccounts","index","isBlockhashValid","minimumLedgerSlot","requestAirdrop","sendTransaction","simulateTransaction"];function Qc(e){return At(e)&&pE.includes(e.method)}function eu(e){return mE({...e,fromJson:(n,t)=>Qc(t)?ft(n):JSON.parse(n),toJson:n=>Qc(n)?Rt(n):JSON.stringify(n)})}var IE=Object.prototype.toString,hE=Object.keys||function(e){let n=[];for(let t in e)n.push(t);return n};function Dn(e,n){let t,r,o,i,a,s,u;if(e===true)return "true";if(e===false)return "false";switch(typeof e){case "object":if(e===null)return null;if("toJSON"in e&&typeof e.toJSON=="function")return Dn(e.toJSON(),n);if(u=IE.call(e),u==="[object Array]"){for(o="[",r=e.length-1,t=0;t<r;t++)o+=Dn(e[t],true)+",";return r>-1&&(o+=Dn(e[t],true)),o+"]"}else if(u==="[object Object]"){for(i=hE(e).sort(),r=i.length,o="",t=0;t<r;)a=i[t],s=Dn(e[a],false),s!==void 0&&(o&&(o+=","),o+=JSON.stringify(a)+":"+s),t++;return "{"+o+"}"}else return JSON.stringify(e);case "function":case "undefined":return n?null:void 0;case "bigint":return `${e.toString()}n`;case "string":return JSON.stringify(e);default:return isFinite(e)?e:null}}function Ot(e){let n=Dn(e,false);if(n!==void 0)return ""+n}function ru(e,n,t){let r="";if(typeof n[0]=="number"){let a=n[0]+1,s=a%10,u=a%100;s==1&&u!=11?r=a+"st":s==2&&u!=12?r=a+"nd":s==3&&u!=13?r=a+"rd":r=a+"th";}else r=`\`${n[0].toString()}\``;let o=n.length>1?n.slice(1).map(a=>typeof a=="number"?`[${a}]`:a).join("."):void 0,i=new c(fn,{argumentLabel:r,keyPath:n,methodName:e,optionalPathLabel:o?` at path \`${o}\``:"",value:t,...o!==void 0?{path:o}:void 0});return ze(i,ru),i}var CE={defaultCommitment:"confirmed",onIntegerOverflow(e,n,t){throw ru(e.methodName,n,t)}},LE=globalThis.AbortController,nu;function tu(){return {}}function bE(e,n){let t;return async function(o){let{payload:i,signal:a}=o,s=n(i);if(s===void 0)return await e(o);if(t||(queueMicrotask(()=>{t=void 0;}),t={}),t[s]==null){let _=new LE,d=(async()=>{try{return await e({...o,signal:_.signal})}catch(l){if(l===(nu||(nu=tu())))return;throw l}})();t[s]={abortController:_,numConsumers:0,responsePromise:d};}let u=t[s];if(u.numConsumers++,a){let _=u.responsePromise;return await new Promise((d,l)=>{let R=E=>{a.removeEventListener("abort",R),u.numConsumers-=1,queueMicrotask(()=>{u.numConsumers===0&&u.abortController.abort(nu||(nu=tu()));}),l(E.target.reason);};a.addEventListener("abort",R),_.then(d).catch(l).finally(()=>{a.removeEventListener("abort",R);});})}else return await u.responsePromise}}function DE(e){return At(e)?Ot([e.method,e.params]):void 0}function wE(e){let n={};for(let t in e)n[t.toLowerCase()]=e[t];return n}function yE(e){return W(eu({...e,headers:{...e.headers?wE(e.headers):void 0,"solana-client":"js/6.3.1"}}),n=>bE(n,DE))}function cm(e,n){return PE(yE({url:e,...n}))}function PE(e){return Hc({api:Zc(CE),transport:e})}var vE=globalThis.AbortController,ME=globalThis.EventTarget,ou;function iu(){return Symbol(void 0)}var Yi=Symbol();function au({abortSignal:e,dataChannelName:n,dataPublisher:t,errorChannelName:r}){let o=new Map;function i(_){for(let[d,l]of o.entries())l.__hasPolled?(o.delete(d),l.onError(_)):l.publishQueue.push({__type:1,err:_});}let a=new vE;e.addEventListener("abort",()=>{a.abort(),i(ou||(ou=iu()));});let s={signal:a.signal},u=Yi;return t.on(r,_=>{u===Yi&&(u=_,a.abort(),i(_));},s),t.on(n,_=>{o.forEach((d,l)=>{if(d.__hasPolled){let{onData:R}=d;o.set(l,{__hasPolled:false,publishQueue:[]}),R(_);}else d.publishQueue.push({__type:0,data:_});});},s),{async*[Symbol.asyncIterator](){if(e.aborted)return;if(u!==Yi)throw u;let _=Symbol();o.set(_,{__hasPolled:false,publishQueue:[]});try{for(;;){let d=o.get(_);if(!d)throw new c(ho);if(d.__hasPolled)throw new c(Co);let l=d.publishQueue;try{if(l.length){d.publishQueue=[];for(let R of l)if(R.__type===0)yield R.data;else throw R.err}else yield await new Promise((R,E)=>{o.set(_,{__hasPolled:!0,onData:R,onError:E});});}catch(R){if(R===(ou||(ou=iu())))return;throw R}}}finally{o.delete(_);}}}}function Xi(e){return {on(n,t,r){function o(i){if(i instanceof CustomEvent){let a=i.detail;t(a);}else t();}return e.addEventListener(n,o,r),()=>{e.removeEventListener(n,o);}}}}function su(e,n,t){let r,o=new ME,i=Xi(o);return {...i,on(a,s,u){r||(r={dispose:e.on(n,E=>{let T=t(E);if(!T)return;let[m,k]=T;o.dispatchEvent(new CustomEvent(m,{detail:k}));}),numSubscribers:0}),r.numSubscribers++;let _=i.on(a,s,u),d=true;function l(){d&&(d=false,u==null||u.signal.removeEventListener("abort",l),r.numSubscribers--,r.numSubscribers===0&&(r.dispose(),r=void 0),_());}return u==null||u.signal.addEventListener("abort",l),l}}}function uu(e){return new Proxy(e.api,{defineProperty(){return false},deleteProperty(){return false},get(n,t,r){if(t!=="then")return function(...o){let i=t.toString(),a=Reflect.get(n,i,r);if(!a)throw new c(To,{notificationName:i});let s=a(...o);return xE(e.transport,s)}}})}function xE(e,n){return {async subscribe({abortSignal:t}){let r=await e({signal:t,...n});return au({abortSignal:t,dataChannelName:"notification",dataPublisher:r,errorChannelName:"error"})}}}function _u(e){return new Proxy({},{defineProperty(){return false},deleteProperty(){return false},get(...n){let[t,r]=n,o=r.toString();return function(...i){let a={methodName:o,params:i},s=e.requestTransformer?e.requestTransformer(a):a;return {execute(u){return e.planExecutor({...u,request:s})},request:s}}}})}function Ji(e,n){return Object.freeze({...e,on(t,r,o){return t!=="message"?e.on(t,r,o):e.on("message",i=>r(n(i)),o)}})}function Zi(e,n){return Object.freeze({...e,send:t=>e.send(n(t))})}var UE=globalThis.AbortController,qi=new WeakMap;function BE(e,n){return du(-1,e,n)}function FE(e,n){du(1,e,n);}function kE(e){let n=qi.get(e);return n||qi.set(e,n={}),n}function du(e,n,t){if(t===void 0)return;let r=kE(n);!r[t]&&e>0&&(r[t]=0);let o=e+r[t];return o<=0?delete r[t]:r[t]=o,o}var cu=new WeakMap;function zE(e,n,t){let r=cu.get(e);r||cu.set(e,r=new WeakMap);let o=t!=null?t:e,i=r.get(o);return i||r.set(o,i=su(e,"message",a=>{let s=a;if(!("method"in s))return;let u=t?t(s.params.result,n):s.params.result;return [`notification:${s.params.subscription}`,u]})),i}async function lu({channel:e,responseTransformer:n,signal:t,subscribeRequest:r,unsubscribeMethodName:o}){let i;e.on("error",()=>{i=void 0,qi.delete(e);},{signal:t});let a=new Promise((l,R)=>{function E(){if(BE(e,i)===0){let T=tn({methodName:o,params:[i]});i=void 0,e.send(T).catch(()=>{});}R(this.reason);}t.aborted?E.call(t):t.addEventListener("abort",E);}),s=tn(r);await e.send(s);let u=new Promise((l,R)=>{let E=new UE;t.addEventListener("abort",E.abort.bind(E));let T={signal:E.signal};e.on("error",m=>{E.abort(),R(m);},T),e.on("message",m=>{m&&typeof m=="object"&&"id"in m&&m.id===s.id&&(E.abort(),"error"in m?R(Ve(m.error)):l(m.result));},T);});if(i=await ve([a,u]),i==null)throw new c(mo);FE(e,i);let _=zE(e,r,n),d=`notification:${i}`;return {on(l,R,E){switch(l){case "notification":return _.on(d,R,E);case "error":return e.on("error",R,E);default:throw new c(Lo,{channelName:l,supportedChannelNames:["notification","error"]})}}}}function fu(e){let n=Et(e),t=Jc({allowedNumericKeyPaths:VE()});return _u({planExecutor({request:r,...o}){return lu({...o,responseTransformer:t,subscribeRequest:{...r,methodName:r.methodName.replace(/Notifications$/,"Subscribe")},unsubscribeMethodName:r.methodName.replace(/Notifications$/,"Unsubscribe")})},requestTransformer:n})}function Ru(e){return fu(e)}function Tm(e){return fu(e)}var Qi;function VE(){return Qi||(Qi={accountNotifications:de.map(e=>["value",...e]),blockNotifications:[["value","block","transactions",f,"meta","preTokenBalances",f,"accountIndex"],["value","block","transactions",f,"meta","preTokenBalances",f,"uiTokenAmount","decimals"],["value","block","transactions",f,"meta","postTokenBalances",f,"accountIndex"],["value","block","transactions",f,"meta","postTokenBalances",f,"uiTokenAmount","decimals"],["value","block","transactions",f,"meta","rewards",f,"commission"],["value","block","transactions",f,"meta","innerInstructions",f,"index"],["value","block","transactions",f,"meta","innerInstructions",f,"instructions",f,"programIdIndex"],["value","block","transactions",f,"meta","innerInstructions",f,"instructions",f,"accounts",f],["value","block","transactions",f,"transaction","message","addressTableLookups",f,"writableIndexes",f],["value","block","transactions",f,"transaction","message","addressTableLookups",f,"readonlyIndexes",f],["value","block","transactions",f,"transaction","message","instructions",f,"programIdIndex"],["value","block","transactions",f,"transaction","message","instructions",f,"accounts",f],["value","block","transactions",f,"transaction","message","header","numReadonlySignedAccounts"],["value","block","transactions",f,"transaction","message","header","numReadonlyUnsignedAccounts"],["value","block","transactions",f,"transaction","message","header","numRequiredSignatures"],["value","block","rewards",f,"commission"]],programNotifications:de.flatMap(e=>[["value",f,"account",...e],[f,"account",...e]])}),Qi}var GE=globalThis.EventTarget,wn=globalThis.WebSocket,Au=1e3;function Eu({sendBufferHighWatermark:e,signal:n,url:t}){if(n.aborted)return Promise.reject(n.reason);let r,o=false,i=new Set;function a(){i.forEach(h=>{h();}),i.clear();}function s(){a(),o||m(n.reason),T.readyState!==wn.CLOSED&&T.readyState!==wn.CLOSING&&T.close(Au);}function u(h){a(),r==null||r.onCancel(),n.removeEventListener("abort",s),T.removeEventListener("close",u),T.removeEventListener("error",_),T.removeEventListener("message",d),T.removeEventListener("open",E),!n.aborted&&!(h.wasClean&&h.code===Au)&&l.dispatchEvent(new CustomEvent("error",{detail:new c(ke,{cause:h})}));}function _(h){if(!n.aborted&&!o){let ne=new c(Io,{errorEvent:h});m(ne),l.dispatchEvent(new CustomEvent("error",{detail:ne}));}}function d(h){n.aborted||l.dispatchEvent(new CustomEvent("message",{detail:h.data}));}let l=new GE,R=Xi(l);function E(){o=true,k({...R,async send(h){if(T.readyState!==wn.OPEN)throw new c(ke);if(!r&&T.bufferedAmount>e){let ne,mt=new Promise((Mu,xu)=>{let aa=setInterval(()=>{(T.readyState!==wn.OPEN||!(T.bufferedAmount>e))&&(clearInterval(aa),r=void 0,Mu());},16);ne=()=>{r=void 0,clearInterval(aa),xu(new c(po));};});r={onCancel:ne,promise:mt};}if(r){if(ArrayBuffer.isView(h)&&!(h instanceof DataView)){let ne=h.constructor;h=new ne(h);}await r.promise;}T.send(h);}});}let T=new wn(t);n.addEventListener("abort",s),T.addEventListener("close",u),T.addEventListener("error",_),T.addEventListener("message",d),T.addEventListener("open",E);let m,k;return new Promise((h,ne)=>{m=ne,k=h;})}function Su(e,n,t){let r="";if(typeof n[0]=="number"){let a=n[0]+1,s=a%10,u=a%100;s==1&&u!=11?r=a+"st":s==2&&u!=12?r=a+"nd":s==3&&u!=13?r=a+"rd":r=a+"th";}else r=`\`${n[0].toString()}\``;let o=n.length>1?n.slice(1).map(a=>typeof a=="number"?`[${a}]`:a).join("."):void 0,i=new c(fn,{argumentLabel:r,keyPath:n,methodName:e,optionalPathLabel:o?` at path \`${o}\``:"",value:t,...o!==void 0?{path:o}:void 0});return ze(i,Su),i}var HE={defaultCommitment:"confirmed",onIntegerOverflow(e,n,t){throw Su(e.methodName,n,t)}},ea=globalThis.AbortController,$E={jsonrpc:"2.0",method:"ping"};function jE({abortSignal:e,channel:n,intervalMs:t}){let r;function o(){n.send($E).catch(s=>{y(s,ke)&&a.abort();});}function i(){clearInterval(r),r=setInterval(o,t);}let a=new ea;return a.signal.addEventListener("abort",()=>{clearInterval(r);}),e.addEventListener("abort",()=>{a.abort();}),n.on("error",()=>{a.abort();},{signal:a.signal}),n.on("message",i,{signal:a.signal}),globalThis.navigator.onLine&&i(),globalThis.addEventListener("offline",function(){clearInterval(r);},{signal:a.signal}),globalThis.addEventListener("online",function(){o(),i();},{signal:a.signal}),{...n,send(...s){return a.signal.aborted||i(),n.send(...s)}}}function KE(){return {entries:[],freeChannelIndex:-1}}function WE(e,{maxSubscriptionsPerChannel:n,minChannels:t}){let r=KE();function o(){var a;if(r.entries.length<t){r.freeChannelIndex=-1;return}let i;for(let s=0;s<r.entries.length;s++){let u=(r.freeChannelIndex+s+2)%r.entries.length,_=r.entries[u];_.subscriptionCount<n&&(!i||i.subscriptionCount>=_.subscriptionCount)&&(i={poolIndex:u,subscriptionCount:_.subscriptionCount});}r.freeChannelIndex=(a=i==null?void 0:i.poolIndex)!=null?a:-1;}return function({abortSignal:a}){let s;function u(){let _=r.entries.findIndex(d=>d===s);r.entries.splice(_,1),s.dispose(),o();}if(r.freeChannelIndex===-1){let _=new ea,d=e({abortSignal:_.signal});d.then(l=>{l.on("error",u,{signal:_.signal});}).catch(u),s={channel:d,dispose(){_.abort();},subscriptionCount:0},r.entries.push(s);}else s=r.entries[r.freeChannelIndex];return s.subscriptionCount++,a.addEventListener("abort",function(){s.subscriptionCount--,s.subscriptionCount===0?u():r.freeChannelIndex!==-1&&(r.freeChannelIndex--,o());}),o(),s.channel}}function YE(e){return W(e,n=>Ji(n,JSON.parse),n=>Zi(n,JSON.stringify))}function XE(e){return W(e,n=>Ji(n,ft),n=>Zi(n,Rt))}function qE(e){return Ou({...e,jsonSerializer:XE})}function vm(e){return Ou({...e,jsonSerializer:YE})}function Ou(e){var o,i;if(/^wss?:/i.test(e.url)===false){let a=e.url.match(/^([^:]+):/);throw new DOMException(a?`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${a[1]}:' is not allowed.`:`Failed to construct 'WebSocket': The URL '${e.url}' is invalid.`)}let{intervalMs:n,...t}=e;return WE((({abortSignal:a})=>{var s;return Eu({...t,sendBufferHighWatermark:(s=e.sendBufferHighWatermark)!=null?s:131072,signal:a}).then(e.jsonSerializer).then(u=>jE({abortSignal:a,channel:u,intervalMs:n!=null?n:5e3}))}),{maxSubscriptionsPerChannel:(o=e.maxSubscriptionsPerChannel)!=null?o:100,minChannels:(i=e.minChannels)!=null?i:1})}function JE(e){let n=new Map;return function(r){let{request:o,signal:i}=r,a=Ot([o.methodName,o.params]),s=n.get(a);if(!s){let u=new ea,_=e({...r,signal:u.signal});_.then(d=>{d.on("error",()=>{n.delete(a),u.abort();},{signal:u.signal});}).catch(()=>{}),n.set(a,s={abortController:u,dataPublisherPromise:_,numSubscribers:0});}return s.numSubscribers++,i.addEventListener("abort",()=>{s.numSubscribers--,s.numSubscribers===0&&queueMicrotask(()=>{s.numSubscribers===0&&(n.delete(a),s.abortController.abort());});},{signal:s.abortController.signal}),s.dataPublisherPromise}}function ZE({createChannel:e}){return W(QE(e),n=>JE(n))}function QE(e){return(async({execute:n,signal:t})=>{let r=await e({abortSignal:t});return await n({channel:r,signal:t})})}function Nu(e,n){let t=ZE({createChannel:qE({...n,url:e})});return eS(t)}function Mm(e,n){return Nu(e,n)}function xm(e,n){return Nu(e,n)}function eS(e){return uu({api:Ru(HE),transport:e})}function rn(e){let n={};return e.forEach(t=>{if(!n[t.address])n[t.address]=t;else if(n[t.address]!==t)throw new c(ur,{address:t.address})}),Object.values(n)}function on(e){return "modifyAndSignTransactions"in e&&typeof e.modifyAndSignTransactions=="function"}function jm(e){if(!on(e))throw new c(Ar,{address:e.address})}function Se(e){return "signTransactions"in e&&typeof e.signTransactions=="function"}function Km(e){if(!Se(e))throw new c(Er,{address:e.address})}function Nt(e){return "signAndSendTransactions"in e&&typeof e.signAndSendTransactions=="function"}function Wm(e){if(!Nt(e))throw new c(Sr,{address:e.address})}function yn(e){return Se(e)||on(e)||Nt(e)}function Ym(e){if(!yn(e))throw new c(Rr,{address:e.address})}function nS(e){var n;return rn(((n=e.accounts)!=null?n:[]).flatMap(t=>"signer"in t?t.signer:[]))}function na(e){return rn([...e.feePayer&&yn(e.feePayer)?[e.feePayer]:[],...e.instructions.flatMap(nS)])}function tS(e,n){if(!n.accounts||n.accounts.length===0)return n;let t=new Map(rn(e).map(r=>[r.address,r]));return Object.freeze({...n,accounts:n.accounts.map(r=>{let o=t.get(r.address);return !Q(r.role)||"signer"in r||!o?r:Object.freeze({...r,signer:o})})})}function Xm(e,n){let t=rS(n)?e.find(r=>r.address===n.feePayer.address):void 0;return !t&&n.instructions.length===0?n:Object.freeze({...n,...t?{feePayer:t}:null,instructions:n.instructions.map(r=>tS(e,r))})}function rS(e){return !!e&&"feePayer"in e&&!!e.feePayer&&typeof e.feePayer.address=="string"&&!yn(e.feePayer)}function qm(e,n){Object.freeze(e);let t={...n,feePayer:e};return Object.freeze(t),t}function Pn(e){return "signMessages"in e&&typeof e.signMessages=="function"}function Jm(e){if(!Pn(e))throw new c(fr,{address:e.address})}function oS(e){return "keyPair"in e&&typeof e.keyPair=="object"&&Pn(e)&&Se(e)}function Zm(e){if(!oS(e))throw new c(_r,{address:e.address})}async function ta(e){let n=await Ke(e.publicKey);return Object.freeze({address:n,keyPair:e,signMessages:r=>Promise.all(r.map(async o=>Object.freeze({[n]:await Pe(e.privateKey,o.content)}))),signTransactions:r=>Promise.all(r.map(async o=>{let i=await bi([e],o);return Object.freeze({[n]:i.signatures[n]})}))})}async function Qm(){return await ta(await Xs())}async function ep(e,n){return await ta(await qs(e,n))}async function np(e,n){return await ta(await Js(e,n))}function ra(e){return ue(e.address)&&"modifyAndSignMessages"in e&&typeof e.modifyAndSignMessages=="function"}function tp(e){if(!ra(e))throw new c(lr,{address:e.address})}function gu(e){return Pn(e)||ra(e)}function rp(e){if(!gu(e))throw new c(dr,{address:e.address})}function op(e){return Object.freeze({address:e,signMessages:t=>Promise.resolve(t.map(()=>Object.freeze({}))),signTransactions:t=>Promise.resolve(t.map(()=>Object.freeze({})))})}function iS({requiredSignatories:e}){let n=e.filter(gu);return rn(n)}async function aS(e,n){let{partialSigners:t,modifyingSigners:r}=sS(iS(e));return await uS(e,r,t,n)}async function ip(e,n){let t=await aS(e,n);return ji(t),t}function sS(e){let n=cS(e),t=e.filter(Pn).filter(r=>!n.includes(r));return Object.freeze({modifyingSigners:n,partialSigners:t})}function cS(e){let n=e.filter(ra);if(n.length===0)return [];let t=n.filter(r=>!Pn(r));return t.length>0?t:[n[0]]}async function uS(e,n=[],t=[],r){var s,u;let o=zc(e),i=await n.reduce(async(_,d)=>{var R;(R=r==null?void 0:r.abortSignal)==null||R.throwIfAborted();let[l]=await d.modifyAndSignMessages([await _],r);return Object.freeze(l)},Promise.resolve(o));(s=r==null?void 0:r.abortSignal)==null||s.throwIfAborted();let a=await Promise.all(t.map(async _=>{let[d]=await _.signMessages([i],r);return d}));return Object.freeze({...i,signatures:Object.freeze(a.reduce((_,d)=>({..._,...d}),(u=i.signatures)!=null?u:{}))})}function ap(e){try{return Tu(e),!0}catch{return false}}function Tu(e){let t=na(e).filter(Nt);if(t.length===0)throw new c(Un);if(t.filter(o=>!Se(o)&&!on(o)).length>1)throw new c(Or)}async function _S(e,n){let{partialSigners:t,modifyingSigners:r}=mu(rn(na(e).filter(yn)),{identifySendingSigner:false});return await pu(e,r,t,n)}async function sp(e,n){let t=await _S(e,n);return ut(t),t}async function cp(e,n){Tu(e);let t=n==null?void 0:n.abortSignal,{partialSigners:r,modifyingSigners:o,sendingSigner:i}=mu(rn(na(e).filter(yn)));t==null||t.throwIfAborted();let a=await pu(e,o,r,n);if(!i)throw new c(Un);t==null||t.throwIfAborted();let[s]=await i.signAndSendTransactions([a],n);return t==null||t.throwIfAborted(),s}function mu(e,n={}){var s;let r=((s=n.identifySendingSigner)!=null?s:true)?dS(e):null,o=e.filter(u=>u!==r&&(on(u)||Se(u))),i=lS(o),a=o.filter(Se).filter(u=>!i.includes(u));return Object.freeze({modifyingSigners:i,partialSigners:a,sendingSigner:r})}function dS(e){let n=e.filter(Nt);if(n.length===0)return null;let t=n.filter(r=>!on(r)&&!Se(r));return t.length>0?t[0]:n[0]}function lS(e){let n=e.filter(on);if(n.length===0)return [];let t=n.filter(r=>!Se(r));return t.length>0?t:[n[0]]}async function pu(e,n=[],t=[],r){var s,u;let o=Li(e),i=await n.reduce(async(_,d)=>{var R;(R=r==null?void 0:r.abortSignal)==null||R.throwIfAborted();let[l]=await d.modifyAndSignTransactions([await _],r);return Object.freeze(l)},Promise.resolve(o));(s=r==null?void 0:r.abortSignal)==null||s.throwIfAborted();let a=await Promise.all(t.map(async _=>{let[d]=await _.signTransactions([i],r);return d}));return Object.freeze({...i,signatures:Object.freeze(a.reduce((_,d)=>({..._,...d}),(u=i.signatures)!=null?u:{}))})}var fS=globalThis.TextEncoder;function up(e,n={}){return Object.freeze({content:typeof e=="string"?new fS().encode(e):e,signatures:Object.freeze({...n})})}var gt=globalThis.AbortController;function Iu({rpc:e,rpcSubscriptions:n}){return async function({abortSignal:r,commitment:o,lastValidBlockHeight:i}){r.throwIfAborted();let a=new gt,s=()=>{a.abort();};r.addEventListener("abort",s,{signal:a.signal});async function u(){let{absoluteSlot:_,blockHeight:d}=await e.getEpochInfo({commitment:o}).send({abortSignal:a.signal});return {blockHeight:d,differenceBetweenSlotHeightAndBlockHeight:_-d}}try{let[_,{blockHeight:d,differenceBetweenSlotHeightAndBlockHeight:l}]=await Promise.all([n.slotNotifications().subscribe({abortSignal:a.signal}),u()]);r.throwIfAborted();let R=d;if(R<=i){let E=l;for await(let T of _){let{slot:m}=T;if(m-E>i){let{blockHeight:k,differenceBetweenSlotHeightAndBlockHeight:h}=await u();if(R=k,R>i)break;E=h;}}}throw r.throwIfAborted(),new c(It,{currentBlockHeight:R,lastValidBlockHeight:i})}finally{a.abort();}}}var oa=40;function hu({rpc:e,rpcSubscriptions:n}){return async function({abortSignal:r,commitment:o,currentNonceValue:i,nonceAccountAddress:a}){let s=new gt;function u(){s.abort();}r.addEventListener("abort",u,{signal:s.signal});let _=await n.accountNotifications(a,{commitment:o,encoding:"base64"}).subscribe({abortSignal:s.signal}),d=je(),l=En();function R([m]){let h=l.encode(m).slice(oa,oa+32);return d.decode(h)}let E=(async()=>{for await(let m of _){let k=R(m.value.data);if(k!==i)throw new c(xe,{actualNonceValue:k,expectedNonceValue:i})}})(),T=(async()=>{let{value:m}=await e.getAccountInfo(a,{commitment:o,dataSlice:{length:32,offset:oa},encoding:"base58"}).send({abortSignal:s.signal});if(!m)throw new c(ht,{nonceAccountAddress:a});let k=m.data[0];if(k!==i)throw new c(xe,{actualNonceValue:k,expectedNonceValue:i});await new Promise(()=>{});})();try{return await ve([E,T])}finally{s.abort();}}}function an({rpc:e,rpcSubscriptions:n}){return async function({abortSignal:r,commitment:o,signature:i}){let a=new gt;function s(){a.abort();}r.addEventListener("abort",s,{signal:a.signal});let u=await n.signatureNotifications(i,{commitment:o}).subscribe({abortSignal:a.signal}),_=(async()=>{for await(let l of u){if(l.value.err)throw Ie(l.value.err);return}})(),d=(async()=>{let{value:l}=await e.getSignatureStatuses([i]).send({abortSignal:a.signal}),R=l[0];if(R!=null&&R.err)throw Ie(R.err);if(R!=null&&R.confirmationStatus&&Ze(R.confirmationStatus,o)>=0)return;await new Promise(()=>{});})();try{return await ve([_,d])}finally{a.abort();}}}async function Cu({abortSignal:e,commitment:n}){return await new Promise((t,r)=>{let o=u=>{clearTimeout(s);let _=new DOMException(u.target.reason,"AbortError");r(_);};e.addEventListener("abort",o);let i=n==="processed"?3e4:6e4,a=performance.now(),s=setTimeout(()=>{let u=performance.now()-a;r(new DOMException(`Timeout elapsed after ${u} ms`,"TimeoutError"));},i);})}async function ia(e,n,t){let{abortSignal:r,commitment:o,getRecentSignatureConfirmationPromise:i}=n;r==null||r.throwIfAborted();let a=new gt;if(r){let s=()=>{a.abort();};r.addEventListener("abort",s,{signal:a.signal});}try{let s=t({...n,abortSignal:a.signal});return await ve([i({abortSignal:a.signal,commitment:o,signature:e}),...s])}finally{a.abort();}}async function Lu(e){await ia(Ee(e.transaction),e,function({abortSignal:t,commitment:r,getNonceInvalidationPromise:o,transaction:i}){return [o({abortSignal:t,commitment:r,currentNonceValue:i.lifetimeConstraint.nonce,nonceAccountAddress:i.lifetimeConstraint.nonceAccountAddress})]});}async function bu(e){await ia(Ee(e.transaction),e,function({abortSignal:t,commitment:r,getBlockHeightExceedencePromise:o,transaction:i}){return [o({abortSignal:t,commitment:r,lastValidBlockHeight:i.lifetimeConstraint.lastValidBlockHeight})]});}async function Du(e){await ia(e.signature,e,function({abortSignal:t,commitment:r,getTimeoutPromise:o}){return [o({abortSignal:t,commitment:r})]});}async function wu({abortSignal:e,commitment:n,confirmSignatureOnlyTransaction:t,lamports:r,recipientAddress:o,rpc:i}){let a=await i.requestAirdrop(o,r,{commitment:n}).send({abortSignal:e});return await t({abortSignal:e,commitment:n,signature:a}),a}function gp({rpc:e,rpcSubscriptions:n}){let t=an({rpc:e,rpcSubscriptions:n});async function r(o){await Du({...o,getRecentSignatureConfirmationPromise:t,getTimeoutPromise:Cu});}return async function(i){return await wu({...i,confirmSignatureOnlyTransaction:r,rpc:e})}}async function yu(e,n,t){if(e.length===0)return {};let r=await Wa(n,e,t);return ja(r),Ya(r),r.reduce((o,i)=>({...o,[i.address]:i.data.addresses}),{})}async function yp(e,n,t){let o=("addressTableLookups"in e&&e.addressTableLookups!==void 0&&e.addressTableLookups.length>0?e.addressTableLookups:[]).map(u=>u.lookupTableAddress),{lastValidBlockHeight:i,...a}=t!=null?t:{},s=o.length>0?await yu(o,n,a):{};return Ws(e,{addressesByLookupTableAddress:s,lastValidBlockHeight:i})}function vp(e){let n={ACCOUNT_STORAGE_OVERHEAD:128n,DEFAULT_EXEMPTION_THRESHOLD:2n,DEFAULT_LAMPORTS_PER_BYTE_YEAR:3480n};return (n.ACCOUNT_STORAGE_OVERHEAD+e)*n.DEFAULT_LAMPORTS_PER_BYTE_YEAR*n.DEFAULT_EXEMPTION_THRESHOLD}function RS(e,n){return !(n!=null&&n.preflightCommitment)&&Ze(e,"finalized")<0?{...n,preflightCommitment:e}:n}async function Tt({abortSignal:e,commitment:n,rpc:t,transaction:r,...o}){let i=tc(r);return await t.sendTransaction(i,{...RS(n,o),encoding:"base64"}).send({abortSignal:e})}async function Pu({abortSignal:e,commitment:n,confirmDurableNonceTransaction:t,rpc:r,transaction:o,...i}){let a=await Tt({...i,abortSignal:e,commitment:n,rpc:r,transaction:o});return await t({abortSignal:e,commitment:n,transaction:o}),a}async function vu({abortSignal:e,commitment:n,confirmRecentTransaction:t,rpc:r,transaction:o,...i}){let a=await Tt({...i,abortSignal:e,commitment:n,rpc:r,transaction:o});return await t({abortSignal:e,commitment:n,transaction:o}),a}function qp({rpc:e,rpcSubscriptions:n}){let t=hu({rpc:e,rpcSubscriptions:n}),r=an({rpc:e,rpcSubscriptions:n});function o(a){return async function(u){try{return await t(u)}catch(_){if(y(_,xe)){let d;try{let{value:l}=await e.getSignatureStatuses([a]).send({abortSignal:u.abortSignal});d=l[0];}catch{throw _}if(d==null)throw _;if(d.confirmationStatus!==null&&Ze(d.confirmationStatus,u.commitment)>=0){if(d.err!==null)throw Ie(d.err);return}return await new Promise(()=>{})}throw _}}}async function i(a){let s=o(Ee(a.transaction));await Lu({...a,getNonceInvalidationPromise:s,getRecentSignatureConfirmationPromise:r});}return async function(s,u){await Pu({...u,confirmDurableNonceTransaction:i,rpc:e,transaction:s});}}function nI({rpc:e,rpcSubscriptions:n}){let t=Iu({rpc:e,rpcSubscriptions:n}),r=an({rpc:e,rpcSubscriptions:n});async function o(i){await bu({...i,getBlockHeightExceedencePromise:t,getRecentSignatureConfirmationPromise:r});}return async function(a,s){await vu({...s,confirmRecentTransaction:o,rpc:e,transaction:a});}}function oI({rpc:e}){return async function(t,r){await Tt({...r,rpc:e,transaction:t});}}
|
|
12
|
+
`)}`}function Sc(e,n){return e?" (preflight)":n?` (${n})`:""}function uT(e){return async(n,{abortSignal:t}={})=>{var a;let r={...e,abortSignal:t,canceled:(a=t==null?void 0:t.aborted)!=null?a:false};vi(n);let o=()=>{r.canceled=true;};t==null||t.addEventListener("abort",o);let i=await Fi(n,r);if(t==null||t.removeEventListener("abort",o),r.canceled){let s=t!=null&&t.aborted?t.reason:void 0;throw IA(i,s)}return i}}async function Fi(e,n){let t=e.kind;switch(t){case "sequential":return await hA(e,n);case "parallel":return await CA(e,n);case "single":return await LA(e,n);default:throw new c(Kn,{kind:t})}}async function hA(e,n){if(!e.divisible)throw new c($n);let t=[];for(let r of e.plans){let o=await Fi(r,n);t.push(o);}return dA(t)}async function CA(e,n){let t=await Promise.all(e.plans.map(r=>Fi(r,n)));return lA(t)}async function LA(e,n){let t={};if(n.canceled)return EA(e.message,t);try{let r=await hn(n.executeTransactionMessage(t,e.message,{abortSignal:n.abortSignal}),n.abortSignal);return typeof r=="string"?RA(e.message,{...t,signature:r}):fA(e.message,r,t)}catch(r){n.canceled=true;let o="transaction"in t&&typeof t.transaction=="object"&&t.signature==null?{...t,signature:Ee(t.transaction)}:t;return AA(e.message,r,o)}}function vi(e){switch(e.kind){case "sequential":if(!e.divisible)throw new c($n);for(let t of e.plans)vi(t);return;case "parallel":for(let t of e.plans)vi(t);return;case "single":default:return}}async function _T(e){try{return await e}catch(n){if(y(n,Hn))return n.context.transactionPlanResult;throw n}}function dT(e){return async(n,{abortSignal:t}={})=>{var o;let r=await ki(n,{abortSignal:t,createTransactionMessage:e.createTransactionMessage,onTransactionMessageUpdated:(o=e.onTransactionMessageUpdated)!=null?o:(i=>i),parent:null,parentCandidates:[]});if(!r)throw new c(Wr);return _t(r)}}async function ki(e,n){var r;(r=n.abortSignal)==null||r.throwIfAborted();let t=e.kind;switch(t){case "sequential":return await bA(e,n);case "parallel":return await DA(e,n);case "single":return await wA(e,n);case "messagePacker":return await yA(e,n);default:throw new c(Rn,{kind:t})}}async function bA(e,n){let t=null;if(n.parent&&(n.parent.kind==="parallel"||!e.divisible)){if(await zi(n,n.parentCandidates,a=>gc(e,a)))return null}else t=n.parentCandidates.length>0?n.parentCandidates[0]:null;let o=[];for(let i of e.plans){let a=await ki(i,{...n,parent:e,parentCandidates:t?[t]:[]});if(a){t=Oc(a);let s=a.kind==="sequential"&&(a.divisible||!e.divisible)?a.plans:[a];o.push(...s);}}return o.length===1?o[0]:o.length===0?null:{divisible:e.divisible,kind:"sequential",planType:"transactionPlan",plans:o}}async function DA(e,n){let t=[...n.parentCandidates],r=[],o=Array.from(e.plans).sort((i,a)=>+(i.kind==="messagePacker")-+(a.kind==="messagePacker"));for(let i of o){let a=await ki(i,{...n,parent:e,parentCandidates:t});if(a){t.push(...PA(a));let s=a.kind==="parallel"?a.plans:[a];r.push(...s);}}return r.length===1?r[0]:r.length===0?null:{kind:"parallel",planType:"transactionPlan",plans:r}}async function wA(e,n){let t=i=>Qe([e.instruction],i);return await zi(n,n.parentCandidates,t)?null:{kind:"single",message:await Nc(n,t),planType:"transactionPlan"}}async function yA(e,n){var i,a;let t=e.getMessagePacker(),r=[],o=[...n.parentCandidates];for(;!t.done();)if(!await zi(n,o,t.packMessageToCapacity)){let _={kind:"single",message:await Nc(n,t.packMessageToCapacity),planType:"transactionPlan"};r.push(_);}return r.length===1?r[0]:r.length===0?null:((i=n.parent)==null?void 0:i.kind)==="parallel"?{kind:"parallel",planType:"transactionPlan",plans:r}:{divisible:((a=n.parent)==null?void 0:a.kind)==="sequential"?n.parent.divisible:true,kind:"sequential",planType:"transactionPlan",plans:r}}function Oc(e){return e.kind==="single"?e:e.kind==="sequential"&&e.plans.length>0?Oc(e.plans[e.plans.length-1]):null}function PA(e){return uc(e)}async function zi(e,n,t){for(let r of n)try{let o=await hn(Promise.resolve(e.onTransactionMessageUpdated(t(r.message),{abortSignal:e.abortSignal})),e.abortSignal);if(ee(o)<=U)return r.message=o,r}catch(o){if(!y(o,Te))throw o}return null}async function Nc(e,n){let t=await hn(Promise.resolve(e.createTransactionMessage({abortSignal:e.abortSignal})),e.abortSignal),r=await hn(Promise.resolve(e.onTransactionMessageUpdated(n(t),{abortSignal:e.abortSignal})),e.abortSignal),o=ee(r);if(o>U){let i=ee(t);throw new c(Te,{numBytesRequired:o-i,numFreeBytes:U-i})}return r}function _t(e){let n=e.kind;switch(n){case "single":return xi(e.message);case "sequential":return e.divisible?sc(e.plans.map(_t)):tA(e.plans.map(_t));case "parallel":return nA(e.plans.map(_t));default:throw new c(Kn,{kind:n})}}function gc(e,n){let t=n,r=e.kind;switch(r){case "sequential":case "parallel":for(let a of e.plans)t=gc(a,t);return t;case "single":t=Qe([e.instruction],n);let o=ee(t);if(o>U){let a=ee(n);throw new c(Te,{numBytesRequired:o-a,numFreeBytes:U-a})}return t;case "messagePacker":let i=e.getMessagePacker();for(;!i.done();)t=i.packMessageToCapacity(t);return t;default:throw new c(Rn,{kind:r})}}function gT(e){return ue(e)}function vA(e){try{_e(e);}catch(n){throw y(n,Ne)?new c(gr,n.context):y(n,Oe)?new c(Tr,n.context):n}}function MA(e){return vA(e),e}function Tc(){return O(G(),e=>MA(e))}function mc(){return P()}function TT(){return A(Tc(),mc())}var pc=new Uint8Array([255,115,111,108,97,110,97,32,111,102,102,99,104,97,105,110]);function Ic(){return Je(pc)}function xA(){return qe(pc)}function hc(...e){return rt(F(e),[Ic()])}function UA(...e){return Xo(M(e),[xA()])}function Gi(e){return n=>{if(n>1)throw new c(Ue,{unsupportedVersion:n});if(e!=null&&n!==e)throw new c(Lr,{actualVersion:n,expectedVersion:e});return n}}function Cc(e,...n){return hc(["version",g(p(),Gi(e))],...n)}function Lc(e,...n){return UA(["version",O(C(),Gi(e))],...n)}function Hi(e){let{version:n,bytesAfterVersion:t}=hc(["version",g(p(),Gi())],["bytesAfterVersion",K()]).decode(e);return An(g(L(P(),{size:p()}),r=>{if(r.length===0)throw new c(le);return r}),{preOffset:({preOffset:r})=>r+(n===0?33:0)}).decode(t)}function bc(){return (e,n)=>{if(e.length!==n.length)return e.length<n.length?-1:1;for(let t=0;t<e.length;t++)if(e[t]!==n[t])return e[t]<n[t]?-1:1;return 0}}function BA(e){let n=Object.values(e);if(n.length===0)throw new c(un);return n.map(t=>t||new Uint8Array(64).fill(0))}function FA(){return O(b(z(j(),64),{size:C()}),BA)}function kA(){return O(M([["signatures",FA()],["content",j()]]),e=>{let n=Object.keys(e.signatures).map($o);if(n.length===0)throw new c(un);let t=Dc(e.content),r=[],o=[];for(let a of t)n.includes(a)||r.push(a);for(let a of n)t.includes(a)||o.push(a);if(r.length||o.length)throw new c(hr,{missingRequiredSigners:r,unexpectedSigners:o});let i={};for(let a of t)i[a]=e.signatures[a];return {...e,signatures:i}})}function zA(){return g(F([["signatures",L(x(K(),64),{size:p()})],["content",K()]]),VA)}function mT(){return A(kA(),zA())}function VA(e){let{content:n,signatures:t}=e;if(t.length===0)throw new c(un);let r=Dc(n);if(r.length!==t.length)throw new c(mr,{numRequiredSignatures:r.length,signatoryAddresses:r,signaturesLength:t.length});let o={};return r.forEach((i,a)=>{let s=t[a];s.every(u=>u===0)?o[i]=null:o[i]=s;}),Object.freeze({content:n,signatures:Object.freeze(o)})}function Dc(e){let n=Hi(e);if(n.length===0)throw new c(le);return n}var Vi=65535,nn=1232,$i=(e=>(e[e.RESTRICTED_ASCII_1232_BYTES_MAX=0]="RESTRICTED_ASCII_1232_BYTES_MAX",e[e.UTF8_1232_BYTES_MAX=1]="UTF8_1232_BYTES_MAX",e[e.UTF8_65535_BYTES_MAX=2]="UTF8_65535_BYTES_MAX",e))($i||{});function wc(e){if(e.format!==0)throw new c(cn,{actualMessageFormat:e.format,expectedMessageFormat:0});if(e.text.length===0)throw new c(ge);if(vc(e.text)===false)throw new c(Nr);let n=Y().getSizeFromValue(e.text);if(n>nn)throw new c(sn,{actualBytes:n,maxBytes:nn})}function pT(e){return e.format!==0||e.text.length===0||vc(e.text)===false?false:Y().getSizeFromValue(e.text)<=nn}function IT(e){let n=Object.freeze({format:0,text:e});return wc(n),n}function yc(e){if(e.text.length===0)throw new c(ge);if(e.format!==1)throw new c(cn,{actualMessageFormat:e.format,expectedMessageFormat:1});let n=Y().getSizeFromValue(e.text);if(n>nn)throw new c(sn,{actualBytes:n,maxBytes:nn})}function hT(e){return e.format!==1||e.text.length===0?false:Y().getSizeFromValue(e.text)<=nn}function CT(e){let n=Object.freeze({format:1,text:e});return yc(n),n}function Pc(e){if(e.format!==2)throw new c(cn,{actualMessageFormat:e.format,expectedMessageFormat:2});if(e.text.length===0)throw new c(ge);let n=Y().getSizeFromValue(e.text);if(n>Vi)throw new c(sn,{actualBytes:n,maxBytes:Vi})}function LT(e){return e.format!==2||e.text.length===0?false:Y().getSizeFromValue(e.text)<=Vi}function bT(e){let n=Object.freeze({format:2,text:e});return Pc(n),n}function vc(e){return /^[\x20-\x7e]+$/.test(e)}function Mc(e){wc(e.content);}function xc(e){yc(e.content);}function Uc(e){Pc(e.content);}function GA(){return Yo($i,{useValuesAsDiscriminators:true})}function HA(){return Wo($i,{useValuesAsDiscriminators:true})}function $A(){return Cc(0,["applicationDomain",mc()],["messageFormat",GA()],["requiredSignatories",g(L(P(),{size:p()}),e=>{if(e.length===0)throw new c(le);return e.map(n=>Object.freeze({address:n}))})],["messageLength",gn()])}function jA(){return Lc(0,["applicationDomain",Tc()],["messageFormat",HA()],["requiredSignatories",O(b(G(),{size:C()}),e=>{if(e.length===0)throw new c(le);return e.map(({address:n})=>n)})],["messageLength",Nn()])}function Bc(){return g(v([$A(),Xn()]),([{messageLength:e,messageFormat:n,requiredSignatories:t,...r},o])=>{let i=Y().getSizeFromValue(o);if(e!==i)throw new c(pr,{actualLength:i,specifiedLength:e});let a=Object.freeze({...r,content:Object.freeze({format:n,text:o}),requiredSignatories:Object.freeze(t)});switch(n){case 0:return Mc(a),a;case 1:return xc(a),a;case 2:return Uc(a),a;default:throw new c(pe,{unexpectedValue:n})}})}function dt(){return O($([jA(),Y()]),e=>{let{content:n,...t}=e;switch(e.content.format){case 0:{Mc(e);break}case 1:{xc(e);break}case 2:{Uc(e);break}default:throw new c(pe,{unexpectedValue:e.content})}let r=Y().getSizeFromValue(n.text);return [{...t,messageFormat:n.format,messageLength:r},n.text]})}function DT(){return A(dt(),Bc())}function KA(){return Cc(1,["requiredSignatories",g(L(x(K(),32),{size:p()}),e=>{if(e.length===0)throw new c(le);let n=bc();for(let r=0;r<e.length-1;r++)switch(n(e[r],e[r+1])){case 0:throw new c(Bn);case 1:throw new c(br)}let t=P();return e.map(r=>Object.freeze({address:t.decode(r)}))})])}function WA(){return Lc(1,["requiredSignatories",O(O(b(j(),{size:C()}),e=>e.toSorted(bc())),e=>{if(e.length===0)throw new c(le);let n=new Set;for(let{address:r}of e){if(n.has(r))throw new c(Bn);n.add(r);}let t=G();return e.map(({address:r})=>t.encode(r))})])}function Fc(){return g(v([KA(),Xn()]),([{requiredSignatories:e,...n},t])=>{if(t.length===0)throw new c(ge);return Object.freeze({...n,content:t,requiredSignatories:Object.freeze(e)})})}function lt(){return O($([WA(),Y()]),e=>{let{content:n,...t}=e;if(n.length===0)throw new c(ge);return [t,n]})}function wT(){return A(lt(),Fc())}function YA(){return S({read(e,n){let t=rt(p(),[Ic()]).decode(e,n);switch(t){case 0:return Bc().read(e,n);case 1:return Fc().read(e,n);default:throw new c(Ue,{unsupportedVersion:t})}}})}function XA(){return N({getSizeFromValue:e=>{let{version:n}=e;switch(n){case 0:return dt().getSizeFromValue(e);case 1:return lt().getSizeFromValue(e);default:throw new c(Ue,{unsupportedVersion:n})}},write:(e,n,t)=>{let{version:r}=e;switch(r){case 0:return dt().write(e,n,t);case 1:return lt().write(e,n,t);default:throw new c(Ue,{unsupportedVersion:r})}}})}function yT(){return A(XA(),YA())}function kc(e,n){let t=n.encode(e),r={};for(let{address:o}of e.requiredSignatories)r[o]=null;return Object.freeze({content:t,signatures:Object.freeze(r)})}function qA(e){return kc(e,dt())}function JA(e){return kc(e,lt())}function zc(e){let{version:n}=e;switch(n){case 0:return qA(e);case 1:return JA(e);default:throw new c(pe,{unexpectedValue:n})}}async function ZA(e,n){let t,r,o=Hi(n.content);if(await Promise.all(e.map(async i=>{let a=await Ke(i.publicKey);if(!o.includes(a)){r||(r=new Set),r.add(a);return}if(r)return;let s=n.signatures[a],u=await Pe(i.privateKey,n.content);s!=null&&he(u,s)||(t||(t={}),t[a]=u);})),r&&r.size>0)throw new c(Cr,{expectedAddresses:o,unexpectedAddresses:[...r]});return t?Object.freeze({...n,signatures:Object.freeze({...n.signatures,...t})}):n}async function PT(e,n){let t=await ZA(e,n);return ji(t),Object.freeze(t),t}function vT(e){return Object.entries(e.signatures).every(([n,t])=>!!t)}function ji(e){let n=[];if(Object.entries(e.signatures).forEach(([t,r])=>{r||n.push(t);}),n.length>0)throw new c(Ir,{addresses:n})}async function MT(e){let n,t=Hi(e.content);if(await Promise.all(t.map(async r=>{let o=e.signatures[r];if(o==null)n||(n={}),n.signatoriesWithMissingSignatures||(n.signatoriesWithMissingSignatures=[]),n.signatoriesWithMissingSignatures.push(r);else {let i=await rs(r);if(await pi(i,o,e.content))return true;n||(n={}),n.signatoriesWithInvalidSignatures||(n.signatoriesWithInvalidSignatures=[]),n.signatoriesWithInvalidSignatures.push(r);}})),n)throw new c(Dr,n)}function UT(){return Ln({})}function Ln(e){return Object.freeze({...e,use(n){let t=n(e);return t instanceof Promise?Vc(t):Ln(t)}})}function Vc(e){return Object.freeze({catch(n){return e.then(t=>Ln(t)).catch(n)},finally(n){return e.then(t=>Ln(t)).finally(n)},then(n,t){return e.then(r=>Ln(r)).then(n,t)},use(n){return Vc(e.then(n))}})}function kT(e,n,t,r){var i;if(!y(e,xn))return false;let o=(i=n.instructions[e.context.index])==null?void 0:i.programAddress;return !o||o!==t?false:typeof r>"u"||e.context.code===r}function ft(e){return JSON.parse(QA(e),(n,t)=>rE(t)?tE(t):t)}function QA(e){let n=[],t=false;for(let r=0;r<e.length;r++){let o=false;if(e[r]==="\\"&&(n.push(e[r++]),o=!o),e[r]==='"'){n.push(e[r]),o||(t=!t);continue}if(!t){let i=eE(e,r);if(i!=null&&i.length){r+=i.length-1,i.match(/\.|[eE]-/)?n.push(i):n.push(nE(i));continue}}n.push(e[r]);}return n.join("")}function eE(e,n){var o;let t=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/;if(!((o=e[n])!=null&&o.match(/[-\d]/)))return null;let r=e.slice(n).match(t);return r?r[0]:null}function nE(e){return `{"$n":"${e}"}`}function tE({$n:e}){if(e.match(/[eE]/)){let[n,t]=e.split(/[eE]/);return BigInt(n)*BigInt(10)**BigInt(t)}return BigInt(e)}function rE(e){return !!e&&typeof e=="object"&&"$n"in e&&typeof e.$n=="string"}var Gc=0n;function oE(){let e=Gc;return Gc++,e.toString()}function tn(e){return {id:oE(),jsonrpc:"2.0",method:e.methodName,params:e.params}}function Rt(e,n){return aE(JSON.stringify(e,(t,r)=>typeof r=="bigint"?iE(r):r,n))}function iE(e){return {$n:`${e}`}}function aE(e){return e.replace(/\{\s*"\$n"\s*:\s*"(-?\d+)"\s*\}/g,"$1")}function Hc(e){return sE(e)}function sE(e){return new Proxy(e.api,{defineProperty(){return false},deleteProperty(){return false},get(n,t,r){if(t!=="then")return function(...o){let i=t.toString(),a=Reflect.get(n,i,r);if(!a)throw new c(go,{method:i,params:o});let s=a(...o);return cE(e,s)}}})}function cE({transport:e},n){return {async send(t){return await n.execute({signal:t==null?void 0:t.abortSignal,transport:e})}}}function $c(e){return new Proxy({},{defineProperty(){return false},deleteProperty(){return false},get(...n){let[t,r]=n,o=r.toString();return function(...i){let a=Object.freeze({methodName:o,params:i}),s=e!=null&&e.requestTransformer?e==null?void 0:e.requestTransformer(a):a;return Object.freeze({execute:async({signal:u,transport:_})=>{let d=tn(s),l=await _({payload:d,signal:u});return e!=null&&e.responseTransformer?e.responseTransformer(l,s):l}})}}})}function At(e){return e==null||typeof e!="object"||Array.isArray(e)?false:"jsonrpc"in e&&e.jsonrpc==="2.0"&&"method"in e&&typeof e.method=="string"&&"params"in e}function uE(e){return typeof e=="bigint"?Number(e):e}var f={};function jc(e){return function n(t,r){if(Array.isArray(t))return t.map((o,i)=>{let a={...r,keyPath:[...r.keyPath,i]};return n(o,a)});if(typeof t=="object"&&t!==null){let o={};for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;let a={...r,keyPath:[...r.keyPath,i]};o[i]=n(t[i],a);}return o}else return e.reduce((o,i)=>i(o,r),t)}}function Kc(e,n){return t=>{let r=jc(e);return Object.freeze({...t,params:r(t.params,n)})}}function Wc(e,n){return t=>jc(e)(t,n)}function _E(){return Kc([uE],{keyPath:[]})}function dE({commitmentPropertyName:e,params:n,optionsObjectPositionInParams:t,overrideCommitment:r}){let o=n[t];if(o===void 0||o&&typeof o=="object"&&!Array.isArray(o)){if(o&&e in o){if(!o[e]||o[e]==="finalized"){let i=[...n],{[e]:a,...s}=o;return Object.keys(s).length>0?i[t]=s:t===i.length-1?i.length--:i[t]=void 0,i}}else if(r!=="finalized"){let i=[...n];return i[t]={...o,[e]:r},i}}return n}function lE({defaultCommitment:e,optionsObjectPositionByMethod:n}){return t=>{let{params:r,methodName:o}=t;if(!Array.isArray(r))return t;let i=n[o];return i==null?t:Object.freeze({methodName:o,params:dE({commitmentPropertyName:o==="sendTransaction"?"preflightCommitment":"commitment",optionsObjectPositionInParams:i,overrideCommitment:e,params:r})})}}function fE(e){return (n,{keyPath:t})=>(typeof n=="bigint"&&e&&(n>Number.MAX_SAFE_INTEGER||n<-Number.MAX_SAFE_INTEGER)&&e(t,n),n)}function RE(e){return n=>Kc([fE((...r)=>e(n,...r))],{keyPath:[]})(n)}var AE={accountNotifications:1,blockNotifications:1,getAccountInfo:1,getBalance:1,getBlock:1,getBlockHeight:0,getBlockProduction:0,getBlocks:2,getBlocksWithLimit:2,getEpochInfo:0,getFeeForMessage:1,getInflationGovernor:0,getInflationReward:1,getLargestAccounts:0,getLatestBlockhash:0,getLeaderSchedule:1,getMinimumBalanceForRentExemption:1,getMultipleAccounts:1,getProgramAccounts:1,getSignaturesForAddress:1,getSlot:0,getSlotLeader:0,getStakeMinimumDelegation:0,getSupply:0,getTokenAccountBalance:1,getTokenAccountsByDelegate:2,getTokenAccountsByOwner:2,getTokenLargestAccounts:1,getTokenSupply:1,getTransaction:1,getTransactionCount:0,getVoteAccounts:0,isBlockhashValid:1,logsNotifications:1,programNotifications:1,requestAirdrop:2,sendTransaction:1,signatureNotifications:1,simulateTransaction:1};function Et(e){let n=e==null?void 0:e.onIntegerOverflow;return t=>W(t,n?RE(n):r=>r,_E(),lE({defaultCommitment:e==null?void 0:e.defaultCommitment,optionsObjectPositionByMethod:AE}))}function Yc(e){return function(t,{keyPath:r}){return typeof t=="number"&&Number.isInteger(t)||typeof t=="bigint"?EE(r,e)?Number(t):BigInt(t):t}}function EE(e,n){return n.some(t=>{if(t.length!==e.length)return false;for(let r=e.length-1;r>=0;r--){let o=e[r],i=t[r];if(i!==o&&(i!==f||typeof o!="number"))return false}return true})}function Xc(e){return Wc([Yc(e)],{keyPath:[]})}function SE(){return e=>e.result}var St=[["data","parsed","info","tokenAmount","decimals"],["data","parsed","info","tokenAmount","uiAmount"],["data","parsed","info","rentExemptReserve","decimals"],["data","parsed","info","rentExemptReserve","uiAmount"],["data","parsed","info","delegatedAmount","decimals"],["data","parsed","info","delegatedAmount","uiAmount"],["data","parsed","info","extensions",f,"state","olderTransferFee","transferFeeBasisPoints"],["data","parsed","info","extensions",f,"state","newerTransferFee","transferFeeBasisPoints"],["data","parsed","info","extensions",f,"state","preUpdateAverageRate"],["data","parsed","info","extensions",f,"state","currentRate"]],de=[...St,["data","parsed","info","lastExtendedSlotStartIndex"],["data","parsed","info","slashPenalty"],["data","parsed","info","warmupCooldownRate"],["data","parsed","info","decimals"],["data","parsed","info","numRequiredSigners"],["data","parsed","info","numValidSigners"],["data","parsed","info","stake","delegation","warmupCooldownRate"],["data","parsed","info","exemptionThreshold"],["data","parsed","info","burnPercent"],["data","parsed","info","commission"],["data","parsed","info","votes",f,"confirmationCount"]],bn=[["index"],["instructions",f,"accounts",f],["instructions",f,"programIdIndex"],["instructions",f,"stackHeight"]],Ki=[["addressTableLookups",f,"writableIndexes",f],["addressTableLookups",f,"readonlyIndexes",f],["header","numReadonlySignedAccounts"],["header","numReadonlyUnsignedAccounts"],["header","numRequiredSignatures"],["instructions",f,"accounts",f],["instructions",f,"programIdIndex"],["instructions",f,"stackHeight"]];function OE(){return [["loadedAccountsDataSize"],...de.map(e=>["accounts",f,...e]),...bn.map(e=>["innerInstructions",f,...e])]}function NE(){return (e,n)=>{let t=e;if("error"in t){let{error:r}=t;if(r&&typeof r=="object"&&"code"in r&&(r.code===-32002||r.code===-32002n)&&"data"in r&&r.data){let a=Wc([Yc(OE())],{keyPath:[]})(r.data,n),s={...r,data:a};throw Ve(s)}throw Ve(t.error)}return t}}function qc(e){return (n,t)=>{let r=t.methodName,o=e!=null&&e.allowedNumericKeyPaths&&r?e.allowedNumericKeyPaths[r]:void 0;return W(n,i=>NE()(i,t),i=>SE()(i,t),i=>Xc(o!=null?o:[])(i,t))}}function Jc(e){return (n,t)=>{let r=t.methodName,o=e!=null&&e.allowedNumericKeyPaths&&r?e.allowedNumericKeyPaths[r]:void 0;return W(n,i=>Xc(o!=null?o:[])(i,t))}}function Zc(e){return $c({requestTransformer:Et(e),responseTransformer:qc({allowedNumericKeyPaths:gE()})})}var Wi;function gE(){return Wi||(Wi={getAccountInfo:de.map(e=>["value",...e]),getBlock:[["transactions",f,"meta","preTokenBalances",f,"accountIndex"],["transactions",f,"meta","preTokenBalances",f,"uiTokenAmount","decimals"],["transactions",f,"meta","postTokenBalances",f,"accountIndex"],["transactions",f,"meta","postTokenBalances",f,"uiTokenAmount","decimals"],["transactions",f,"meta","rewards",f,"commission"],...bn.map(e=>["transactions",f,"meta","innerInstructions",f,...e]),...Ki.map(e=>["transactions",f,"transaction","message",...e]),["rewards",f,"commission"]],getClusterNodes:[[f,"featureSet"],[f,"shredVersion"]],getInflationGovernor:[["initial"],["foundation"],["foundationTerm"],["taper"],["terminal"]],getInflationRate:[["foundation"],["total"],["validator"]],getInflationReward:[[f,"commission"]],getMultipleAccounts:de.map(e=>["value",f,...e]),getProgramAccounts:de.flatMap(e=>[["value",f,"account",...e],[f,"account",...e]]),getRecentPerformanceSamples:[[f,"samplePeriodSecs"]],getTokenAccountBalance:[["value","decimals"],["value","uiAmount"]],getTokenAccountsByDelegate:St.map(e=>["value",f,"account",...e]),getTokenAccountsByOwner:St.map(e=>["value",f,"account",...e]),getTokenLargestAccounts:[["value",f,"decimals"],["value",f,"uiAmount"]],getTokenSupply:[["value","decimals"],["value","uiAmount"]],getTransaction:[["meta","preTokenBalances",f,"accountIndex"],["meta","preTokenBalances",f,"uiTokenAmount","decimals"],["meta","postTokenBalances",f,"accountIndex"],["meta","postTokenBalances",f,"uiTokenAmount","decimals"],["meta","rewards",f,"commission"],...bn.map(e=>["meta","innerInstructions",f,...e]),...Ki.map(e=>["transaction","message",...e])],getVersion:[["feature-set"]],getVoteAccounts:[["current",f,"commission"],["delinquent",f,"commission"]],simulateTransaction:[["value","loadedAccountsDataSize"],...de.map(e=>["value","accounts",f,...e]),...bn.map(e=>["value","innerInstructions",f,...e])]}),Wi}function TE(e){let n={};for(let t in e)n[t.toLowerCase()]=e[t];return n}function mE(e){let{fromJson:n,headers:t,toJson:r,url:o}=e,i,a=t&&TE(t);return async function({payload:u,signal:_}){let d=r?r(u):JSON.stringify(u),l={...i,body:d,headers:{...a,accept:"application/json","content-length":d.length.toString(),"content-type":"application/json; charset=utf-8"},method:"POST",signal:_},R=await fetch(o,l);if(!R.ok)throw new c(No,{headers:R.headers,message:R.statusText,statusCode:R.status});return n?n(await R.text(),u):await R.json()}}var pE=["getAccountInfo","getBalance","getBlock","getBlockCommitment","getBlockHeight","getBlockProduction","getBlocks","getBlocksWithLimit","getBlockTime","getClusterNodes","getEpochInfo","getEpochSchedule","getFeeForMessage","getFirstAvailableBlock","getGenesisHash","getHealth","getHighestSnapshotSlot","getIdentity","getInflationGovernor","getInflationRate","getInflationReward","getLargestAccounts","getLatestBlockhash","getLeaderSchedule","getMaxRetransmitSlot","getMaxShredInsertSlot","getMinimumBalanceForRentExemption","getMultipleAccounts","getProgramAccounts","getRecentPerformanceSamples","getRecentPrioritizationFees","getSignaturesForAddress","getSignatureStatuses","getSlot","getSlotLeader","getSlotLeaders","getStakeMinimumDelegation","getSupply","getTokenAccountBalance","getTokenAccountsByDelegate","getTokenAccountsByOwner","getTokenLargestAccounts","getTokenSupply","getTransaction","getTransactionCount","getVersion","getVoteAccounts","index","isBlockhashValid","minimumLedgerSlot","requestAirdrop","sendTransaction","simulateTransaction"];function Qc(e){return At(e)&&pE.includes(e.method)}function eu(e){return mE({...e,fromJson:(n,t)=>Qc(t)?ft(n):JSON.parse(n),toJson:n=>Qc(n)?Rt(n):JSON.stringify(n)})}var IE=Object.prototype.toString,hE=Object.keys||function(e){let n=[];for(let t in e)n.push(t);return n};function Dn(e,n){let t,r,o,i,a,s,u;if(e===true)return "true";if(e===false)return "false";switch(typeof e){case "object":if(e===null)return null;if("toJSON"in e&&typeof e.toJSON=="function")return Dn(e.toJSON(),n);if(u=IE.call(e),u==="[object Array]"){for(o="[",r=e.length-1,t=0;t<r;t++)o+=Dn(e[t],true)+",";return r>-1&&(o+=Dn(e[t],true)),o+"]"}else if(u==="[object Object]"){for(i=hE(e).sort(),r=i.length,o="",t=0;t<r;)a=i[t],s=Dn(e[a],false),s!==void 0&&(o&&(o+=","),o+=JSON.stringify(a)+":"+s),t++;return "{"+o+"}"}else return JSON.stringify(e);case "function":case "undefined":return n?null:void 0;case "bigint":return `${e.toString()}n`;case "string":return JSON.stringify(e);default:return isFinite(e)?e:null}}function Ot(e){let n=Dn(e,false);if(n!==void 0)return ""+n}function ru(e,n,t){let r="";if(typeof n[0]=="number"){let a=n[0]+1,s=a%10,u=a%100;s==1&&u!=11?r=a+"st":s==2&&u!=12?r=a+"nd":s==3&&u!=13?r=a+"rd":r=a+"th";}else r=`\`${n[0].toString()}\``;let o=n.length>1?n.slice(1).map(a=>typeof a=="number"?`[${a}]`:a).join("."):void 0,i=new c(fn,{argumentLabel:r,keyPath:n,methodName:e,optionalPathLabel:o?` at path \`${o}\``:"",value:t,...o!==void 0?{path:o}:void 0});return ze(i,ru),i}var CE={defaultCommitment:"confirmed",onIntegerOverflow(e,n,t){throw ru(e.methodName,n,t)}},LE=globalThis.AbortController,nu;function tu(){return {}}function bE(e,n){let t;return async function(o){let{payload:i,signal:a}=o,s=n(i);if(s===void 0)return await e(o);if(t||(queueMicrotask(()=>{t=void 0;}),t={}),t[s]==null){let _=new LE,d=(async()=>{try{return await e({...o,signal:_.signal})}catch(l){if(l===(nu||(nu=tu())))return;throw l}})();t[s]={abortController:_,numConsumers:0,responsePromise:d};}let u=t[s];if(u.numConsumers++,a){let _=u.responsePromise;return await new Promise((d,l)=>{let R=E=>{a.removeEventListener("abort",R),u.numConsumers-=1,queueMicrotask(()=>{u.numConsumers===0&&u.abortController.abort(nu||(nu=tu()));}),l(E.target.reason);};a.addEventListener("abort",R),_.then(d).catch(l).finally(()=>{a.removeEventListener("abort",R);});})}else return await u.responsePromise}}function DE(e){return At(e)?Ot([e.method,e.params]):void 0}function wE(e){let n={};for(let t in e)n[t.toLowerCase()]=e[t];return n}function yE(e){return W(eu({...e,headers:{...e.headers?wE(e.headers):void 0,"solana-client":"js/6.3.2-canary-20260313112147"}}),n=>bE(n,DE))}function cm(e,n){return PE(yE({url:e,...n}))}function PE(e){return Hc({api:Zc(CE),transport:e})}var vE=globalThis.AbortController,ME=globalThis.EventTarget,ou;function iu(){return Symbol(void 0)}var Yi=Symbol();function au({abortSignal:e,dataChannelName:n,dataPublisher:t,errorChannelName:r}){let o=new Map;function i(_){for(let[d,l]of o.entries())l.__hasPolled?(o.delete(d),l.onError(_)):l.publishQueue.push({__type:1,err:_});}let a=new vE;e.addEventListener("abort",()=>{a.abort(),i(ou||(ou=iu()));});let s={signal:a.signal},u=Yi;return t.on(r,_=>{u===Yi&&(u=_,a.abort(),i(_));},s),t.on(n,_=>{o.forEach((d,l)=>{if(d.__hasPolled){let{onData:R}=d;o.set(l,{__hasPolled:false,publishQueue:[]}),R(_);}else d.publishQueue.push({__type:0,data:_});});},s),{async*[Symbol.asyncIterator](){if(e.aborted)return;if(u!==Yi)throw u;let _=Symbol();o.set(_,{__hasPolled:false,publishQueue:[]});try{for(;;){let d=o.get(_);if(!d)throw new c(ho);if(d.__hasPolled)throw new c(Co);let l=d.publishQueue;try{if(l.length){d.publishQueue=[];for(let R of l)if(R.__type===0)yield R.data;else throw R.err}else yield await new Promise((R,E)=>{o.set(_,{__hasPolled:!0,onData:R,onError:E});});}catch(R){if(R===(ou||(ou=iu())))return;throw R}}}finally{o.delete(_);}}}}function Xi(e){return {on(n,t,r){function o(i){if(i instanceof CustomEvent){let a=i.detail;t(a);}else t();}return e.addEventListener(n,o,r),()=>{e.removeEventListener(n,o);}}}}function su(e,n,t){let r,o=new ME,i=Xi(o);return {...i,on(a,s,u){r||(r={dispose:e.on(n,E=>{let T=t(E);if(!T)return;let[m,k]=T;o.dispatchEvent(new CustomEvent(m,{detail:k}));}),numSubscribers:0}),r.numSubscribers++;let _=i.on(a,s,u),d=true;function l(){d&&(d=false,u==null||u.signal.removeEventListener("abort",l),r.numSubscribers--,r.numSubscribers===0&&(r.dispose(),r=void 0),_());}return u==null||u.signal.addEventListener("abort",l),l}}}function uu(e){return new Proxy(e.api,{defineProperty(){return false},deleteProperty(){return false},get(n,t,r){if(t!=="then")return function(...o){let i=t.toString(),a=Reflect.get(n,i,r);if(!a)throw new c(To,{notificationName:i});let s=a(...o);return xE(e.transport,s)}}})}function xE(e,n){return {async subscribe({abortSignal:t}){let r=await e({signal:t,...n});return au({abortSignal:t,dataChannelName:"notification",dataPublisher:r,errorChannelName:"error"})}}}function _u(e){return new Proxy({},{defineProperty(){return false},deleteProperty(){return false},get(...n){let[t,r]=n,o=r.toString();return function(...i){let a={methodName:o,params:i},s=e.requestTransformer?e.requestTransformer(a):a;return {execute(u){return e.planExecutor({...u,request:s})},request:s}}}})}function Ji(e,n){return Object.freeze({...e,on(t,r,o){return t!=="message"?e.on(t,r,o):e.on("message",i=>r(n(i)),o)}})}function Zi(e,n){return Object.freeze({...e,send:t=>e.send(n(t))})}var UE=globalThis.AbortController,qi=new WeakMap;function BE(e,n){return du(-1,e,n)}function FE(e,n){du(1,e,n);}function kE(e){let n=qi.get(e);return n||qi.set(e,n={}),n}function du(e,n,t){if(t===void 0)return;let r=kE(n);!r[t]&&e>0&&(r[t]=0);let o=e+r[t];return o<=0?delete r[t]:r[t]=o,o}var cu=new WeakMap;function zE(e,n,t){let r=cu.get(e);r||cu.set(e,r=new WeakMap);let o=t!=null?t:e,i=r.get(o);return i||r.set(o,i=su(e,"message",a=>{let s=a;if(!("method"in s))return;let u=t?t(s.params.result,n):s.params.result;return [`notification:${s.params.subscription}`,u]})),i}async function lu({channel:e,responseTransformer:n,signal:t,subscribeRequest:r,unsubscribeMethodName:o}){let i;e.on("error",()=>{i=void 0,qi.delete(e);},{signal:t});let a=new Promise((l,R)=>{function E(){if(BE(e,i)===0){let T=tn({methodName:o,params:[i]});i=void 0,e.send(T).catch(()=>{});}R(this.reason);}t.aborted?E.call(t):t.addEventListener("abort",E);}),s=tn(r);await e.send(s);let u=new Promise((l,R)=>{let E=new UE;t.addEventListener("abort",E.abort.bind(E));let T={signal:E.signal};e.on("error",m=>{E.abort(),R(m);},T),e.on("message",m=>{m&&typeof m=="object"&&"id"in m&&m.id===s.id&&(E.abort(),"error"in m?R(Ve(m.error)):l(m.result));},T);});if(i=await ve([a,u]),i==null)throw new c(mo);FE(e,i);let _=zE(e,r,n),d=`notification:${i}`;return {on(l,R,E){switch(l){case "notification":return _.on(d,R,E);case "error":return e.on("error",R,E);default:throw new c(Lo,{channelName:l,supportedChannelNames:["notification","error"]})}}}}function fu(e){let n=Et(e),t=Jc({allowedNumericKeyPaths:VE()});return _u({planExecutor({request:r,...o}){return lu({...o,responseTransformer:t,subscribeRequest:{...r,methodName:r.methodName.replace(/Notifications$/,"Subscribe")},unsubscribeMethodName:r.methodName.replace(/Notifications$/,"Unsubscribe")})},requestTransformer:n})}function Ru(e){return fu(e)}function Tm(e){return fu(e)}var Qi;function VE(){return Qi||(Qi={accountNotifications:de.map(e=>["value",...e]),blockNotifications:[["value","block","transactions",f,"meta","preTokenBalances",f,"accountIndex"],["value","block","transactions",f,"meta","preTokenBalances",f,"uiTokenAmount","decimals"],["value","block","transactions",f,"meta","postTokenBalances",f,"accountIndex"],["value","block","transactions",f,"meta","postTokenBalances",f,"uiTokenAmount","decimals"],["value","block","transactions",f,"meta","rewards",f,"commission"],["value","block","transactions",f,"meta","innerInstructions",f,"index"],["value","block","transactions",f,"meta","innerInstructions",f,"instructions",f,"programIdIndex"],["value","block","transactions",f,"meta","innerInstructions",f,"instructions",f,"accounts",f],["value","block","transactions",f,"transaction","message","addressTableLookups",f,"writableIndexes",f],["value","block","transactions",f,"transaction","message","addressTableLookups",f,"readonlyIndexes",f],["value","block","transactions",f,"transaction","message","instructions",f,"programIdIndex"],["value","block","transactions",f,"transaction","message","instructions",f,"accounts",f],["value","block","transactions",f,"transaction","message","header","numReadonlySignedAccounts"],["value","block","transactions",f,"transaction","message","header","numReadonlyUnsignedAccounts"],["value","block","transactions",f,"transaction","message","header","numRequiredSignatures"],["value","block","rewards",f,"commission"]],programNotifications:de.flatMap(e=>[["value",f,"account",...e],[f,"account",...e]])}),Qi}var GE=globalThis.EventTarget,wn=globalThis.WebSocket,Au=1e3;function Eu({sendBufferHighWatermark:e,signal:n,url:t}){if(n.aborted)return Promise.reject(n.reason);let r,o=false,i=new Set;function a(){i.forEach(h=>{h();}),i.clear();}function s(){a(),o||m(n.reason),T.readyState!==wn.CLOSED&&T.readyState!==wn.CLOSING&&T.close(Au);}function u(h){a(),r==null||r.onCancel(),n.removeEventListener("abort",s),T.removeEventListener("close",u),T.removeEventListener("error",_),T.removeEventListener("message",d),T.removeEventListener("open",E),!n.aborted&&!(h.wasClean&&h.code===Au)&&l.dispatchEvent(new CustomEvent("error",{detail:new c(ke,{cause:h})}));}function _(h){if(!n.aborted&&!o){let ne=new c(Io,{errorEvent:h});m(ne),l.dispatchEvent(new CustomEvent("error",{detail:ne}));}}function d(h){n.aborted||l.dispatchEvent(new CustomEvent("message",{detail:h.data}));}let l=new GE,R=Xi(l);function E(){o=true,k({...R,async send(h){if(T.readyState!==wn.OPEN)throw new c(ke);if(!r&&T.bufferedAmount>e){let ne,mt=new Promise((Mu,xu)=>{let aa=setInterval(()=>{(T.readyState!==wn.OPEN||!(T.bufferedAmount>e))&&(clearInterval(aa),r=void 0,Mu());},16);ne=()=>{r=void 0,clearInterval(aa),xu(new c(po));};});r={onCancel:ne,promise:mt};}if(r){if(ArrayBuffer.isView(h)&&!(h instanceof DataView)){let ne=h.constructor;h=new ne(h);}await r.promise;}T.send(h);}});}let T=new wn(t);n.addEventListener("abort",s),T.addEventListener("close",u),T.addEventListener("error",_),T.addEventListener("message",d),T.addEventListener("open",E);let m,k;return new Promise((h,ne)=>{m=ne,k=h;})}function Su(e,n,t){let r="";if(typeof n[0]=="number"){let a=n[0]+1,s=a%10,u=a%100;s==1&&u!=11?r=a+"st":s==2&&u!=12?r=a+"nd":s==3&&u!=13?r=a+"rd":r=a+"th";}else r=`\`${n[0].toString()}\``;let o=n.length>1?n.slice(1).map(a=>typeof a=="number"?`[${a}]`:a).join("."):void 0,i=new c(fn,{argumentLabel:r,keyPath:n,methodName:e,optionalPathLabel:o?` at path \`${o}\``:"",value:t,...o!==void 0?{path:o}:void 0});return ze(i,Su),i}var HE={defaultCommitment:"confirmed",onIntegerOverflow(e,n,t){throw Su(e.methodName,n,t)}},ea=globalThis.AbortController,$E={jsonrpc:"2.0",method:"ping"};function jE({abortSignal:e,channel:n,intervalMs:t}){let r;function o(){n.send($E).catch(s=>{y(s,ke)&&a.abort();});}function i(){clearInterval(r),r=setInterval(o,t);}let a=new ea;return a.signal.addEventListener("abort",()=>{clearInterval(r);}),e.addEventListener("abort",()=>{a.abort();}),n.on("error",()=>{a.abort();},{signal:a.signal}),n.on("message",i,{signal:a.signal}),globalThis.navigator.onLine&&i(),globalThis.addEventListener("offline",function(){clearInterval(r);},{signal:a.signal}),globalThis.addEventListener("online",function(){o(),i();},{signal:a.signal}),{...n,send(...s){return a.signal.aborted||i(),n.send(...s)}}}function KE(){return {entries:[],freeChannelIndex:-1}}function WE(e,{maxSubscriptionsPerChannel:n,minChannels:t}){let r=KE();function o(){var a;if(r.entries.length<t){r.freeChannelIndex=-1;return}let i;for(let s=0;s<r.entries.length;s++){let u=(r.freeChannelIndex+s+2)%r.entries.length,_=r.entries[u];_.subscriptionCount<n&&(!i||i.subscriptionCount>=_.subscriptionCount)&&(i={poolIndex:u,subscriptionCount:_.subscriptionCount});}r.freeChannelIndex=(a=i==null?void 0:i.poolIndex)!=null?a:-1;}return function({abortSignal:a}){let s;function u(){let _=r.entries.findIndex(d=>d===s);r.entries.splice(_,1),s.dispose(),o();}if(r.freeChannelIndex===-1){let _=new ea,d=e({abortSignal:_.signal});d.then(l=>{l.on("error",u,{signal:_.signal});}).catch(u),s={channel:d,dispose(){_.abort();},subscriptionCount:0},r.entries.push(s);}else s=r.entries[r.freeChannelIndex];return s.subscriptionCount++,a.addEventListener("abort",function(){s.subscriptionCount--,s.subscriptionCount===0?u():r.freeChannelIndex!==-1&&(r.freeChannelIndex--,o());}),o(),s.channel}}function YE(e){return W(e,n=>Ji(n,JSON.parse),n=>Zi(n,JSON.stringify))}function XE(e){return W(e,n=>Ji(n,ft),n=>Zi(n,Rt))}function qE(e){return Ou({...e,jsonSerializer:XE})}function vm(e){return Ou({...e,jsonSerializer:YE})}function Ou(e){var o,i;if(/^wss?:/i.test(e.url)===false){let a=e.url.match(/^([^:]+):/);throw new DOMException(a?`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${a[1]}:' is not allowed.`:`Failed to construct 'WebSocket': The URL '${e.url}' is invalid.`)}let{intervalMs:n,...t}=e;return WE((({abortSignal:a})=>{var s;return Eu({...t,sendBufferHighWatermark:(s=e.sendBufferHighWatermark)!=null?s:131072,signal:a}).then(e.jsonSerializer).then(u=>jE({abortSignal:a,channel:u,intervalMs:n!=null?n:5e3}))}),{maxSubscriptionsPerChannel:(o=e.maxSubscriptionsPerChannel)!=null?o:100,minChannels:(i=e.minChannels)!=null?i:1})}function JE(e){let n=new Map;return function(r){let{request:o,signal:i}=r,a=Ot([o.methodName,o.params]),s=n.get(a);if(!s){let u=new ea,_=e({...r,signal:u.signal});_.then(d=>{d.on("error",()=>{n.delete(a),u.abort();},{signal:u.signal});}).catch(()=>{}),n.set(a,s={abortController:u,dataPublisherPromise:_,numSubscribers:0});}return s.numSubscribers++,i.addEventListener("abort",()=>{s.numSubscribers--,s.numSubscribers===0&&queueMicrotask(()=>{s.numSubscribers===0&&(n.delete(a),s.abortController.abort());});},{signal:s.abortController.signal}),s.dataPublisherPromise}}function ZE({createChannel:e}){return W(QE(e),n=>JE(n))}function QE(e){return(async({execute:n,signal:t})=>{let r=await e({abortSignal:t});return await n({channel:r,signal:t})})}function Nu(e,n){let t=ZE({createChannel:qE({...n,url:e})});return eS(t)}function Mm(e,n){return Nu(e,n)}function xm(e,n){return Nu(e,n)}function eS(e){return uu({api:Ru(HE),transport:e})}function rn(e){let n={};return e.forEach(t=>{if(!n[t.address])n[t.address]=t;else if(n[t.address]!==t)throw new c(ur,{address:t.address})}),Object.values(n)}function on(e){return "modifyAndSignTransactions"in e&&typeof e.modifyAndSignTransactions=="function"}function jm(e){if(!on(e))throw new c(Ar,{address:e.address})}function Se(e){return "signTransactions"in e&&typeof e.signTransactions=="function"}function Km(e){if(!Se(e))throw new c(Er,{address:e.address})}function Nt(e){return "signAndSendTransactions"in e&&typeof e.signAndSendTransactions=="function"}function Wm(e){if(!Nt(e))throw new c(Sr,{address:e.address})}function yn(e){return Se(e)||on(e)||Nt(e)}function Ym(e){if(!yn(e))throw new c(Rr,{address:e.address})}function nS(e){var n;return rn(((n=e.accounts)!=null?n:[]).flatMap(t=>"signer"in t?t.signer:[]))}function na(e){return rn([...e.feePayer&&yn(e.feePayer)?[e.feePayer]:[],...e.instructions.flatMap(nS)])}function tS(e,n){if(!n.accounts||n.accounts.length===0)return n;let t=new Map(rn(e).map(r=>[r.address,r]));return Object.freeze({...n,accounts:n.accounts.map(r=>{let o=t.get(r.address);return !Q(r.role)||"signer"in r||!o?r:Object.freeze({...r,signer:o})})})}function Xm(e,n){let t=rS(n)?e.find(r=>r.address===n.feePayer.address):void 0;return !t&&n.instructions.length===0?n:Object.freeze({...n,...t?{feePayer:t}:null,instructions:n.instructions.map(r=>tS(e,r))})}function rS(e){return !!e&&"feePayer"in e&&!!e.feePayer&&typeof e.feePayer.address=="string"&&!yn(e.feePayer)}function qm(e,n){Object.freeze(e);let t={...n,feePayer:e};return Object.freeze(t),t}function Pn(e){return "signMessages"in e&&typeof e.signMessages=="function"}function Jm(e){if(!Pn(e))throw new c(fr,{address:e.address})}function oS(e){return "keyPair"in e&&typeof e.keyPair=="object"&&Pn(e)&&Se(e)}function Zm(e){if(!oS(e))throw new c(_r,{address:e.address})}async function ta(e){let n=await Ke(e.publicKey);return Object.freeze({address:n,keyPair:e,signMessages:r=>Promise.all(r.map(async o=>Object.freeze({[n]:await Pe(e.privateKey,o.content)}))),signTransactions:r=>Promise.all(r.map(async o=>{let i=await bi([e],o);return Object.freeze({[n]:i.signatures[n]})}))})}async function Qm(){return await ta(await Xs())}async function ep(e,n){return await ta(await qs(e,n))}async function np(e,n){return await ta(await Js(e,n))}function ra(e){return ue(e.address)&&"modifyAndSignMessages"in e&&typeof e.modifyAndSignMessages=="function"}function tp(e){if(!ra(e))throw new c(lr,{address:e.address})}function gu(e){return Pn(e)||ra(e)}function rp(e){if(!gu(e))throw new c(dr,{address:e.address})}function op(e){return Object.freeze({address:e,signMessages:t=>Promise.resolve(t.map(()=>Object.freeze({}))),signTransactions:t=>Promise.resolve(t.map(()=>Object.freeze({})))})}function iS({requiredSignatories:e}){let n=e.filter(gu);return rn(n)}async function aS(e,n){let{partialSigners:t,modifyingSigners:r}=sS(iS(e));return await uS(e,r,t,n)}async function ip(e,n){let t=await aS(e,n);return ji(t),t}function sS(e){let n=cS(e),t=e.filter(Pn).filter(r=>!n.includes(r));return Object.freeze({modifyingSigners:n,partialSigners:t})}function cS(e){let n=e.filter(ra);if(n.length===0)return [];let t=n.filter(r=>!Pn(r));return t.length>0?t:[n[0]]}async function uS(e,n=[],t=[],r){var s,u;let o=zc(e),i=await n.reduce(async(_,d)=>{var R;(R=r==null?void 0:r.abortSignal)==null||R.throwIfAborted();let[l]=await d.modifyAndSignMessages([await _],r);return Object.freeze(l)},Promise.resolve(o));(s=r==null?void 0:r.abortSignal)==null||s.throwIfAborted();let a=await Promise.all(t.map(async _=>{let[d]=await _.signMessages([i],r);return d}));return Object.freeze({...i,signatures:Object.freeze(a.reduce((_,d)=>({..._,...d}),(u=i.signatures)!=null?u:{}))})}function ap(e){try{return Tu(e),!0}catch{return false}}function Tu(e){let t=na(e).filter(Nt);if(t.length===0)throw new c(Un);if(t.filter(o=>!Se(o)&&!on(o)).length>1)throw new c(Or)}async function _S(e,n){let{partialSigners:t,modifyingSigners:r}=mu(rn(na(e).filter(yn)),{identifySendingSigner:false});return await pu(e,r,t,n)}async function sp(e,n){let t=await _S(e,n);return ut(t),t}async function cp(e,n){Tu(e);let t=n==null?void 0:n.abortSignal,{partialSigners:r,modifyingSigners:o,sendingSigner:i}=mu(rn(na(e).filter(yn)));t==null||t.throwIfAborted();let a=await pu(e,o,r,n);if(!i)throw new c(Un);t==null||t.throwIfAborted();let[s]=await i.signAndSendTransactions([a],n);return t==null||t.throwIfAborted(),s}function mu(e,n={}){var s;let r=((s=n.identifySendingSigner)!=null?s:true)?dS(e):null,o=e.filter(u=>u!==r&&(on(u)||Se(u))),i=lS(o),a=o.filter(Se).filter(u=>!i.includes(u));return Object.freeze({modifyingSigners:i,partialSigners:a,sendingSigner:r})}function dS(e){let n=e.filter(Nt);if(n.length===0)return null;let t=n.filter(r=>!on(r)&&!Se(r));return t.length>0?t[0]:n[0]}function lS(e){let n=e.filter(on);if(n.length===0)return [];let t=n.filter(r=>!Se(r));return t.length>0?t:[n[0]]}async function pu(e,n=[],t=[],r){var s,u;let o=Li(e),i=await n.reduce(async(_,d)=>{var R;(R=r==null?void 0:r.abortSignal)==null||R.throwIfAborted();let[l]=await d.modifyAndSignTransactions([await _],r);return Object.freeze(l)},Promise.resolve(o));(s=r==null?void 0:r.abortSignal)==null||s.throwIfAborted();let a=await Promise.all(t.map(async _=>{let[d]=await _.signTransactions([i],r);return d}));return Object.freeze({...i,signatures:Object.freeze(a.reduce((_,d)=>({..._,...d}),(u=i.signatures)!=null?u:{}))})}var fS=globalThis.TextEncoder;function up(e,n={}){return Object.freeze({content:typeof e=="string"?new fS().encode(e):e,signatures:Object.freeze({...n})})}var gt=globalThis.AbortController;function Iu({rpc:e,rpcSubscriptions:n}){return async function({abortSignal:r,commitment:o,lastValidBlockHeight:i}){r.throwIfAborted();let a=new gt,s=()=>{a.abort();};r.addEventListener("abort",s,{signal:a.signal});async function u(){let{absoluteSlot:_,blockHeight:d}=await e.getEpochInfo({commitment:o}).send({abortSignal:a.signal});return {blockHeight:d,differenceBetweenSlotHeightAndBlockHeight:_-d}}try{let[_,{blockHeight:d,differenceBetweenSlotHeightAndBlockHeight:l}]=await Promise.all([n.slotNotifications().subscribe({abortSignal:a.signal}),u()]);r.throwIfAborted();let R=d;if(R<=i){let E=l;for await(let T of _){let{slot:m}=T;if(m-E>i){let{blockHeight:k,differenceBetweenSlotHeightAndBlockHeight:h}=await u();if(R=k,R>i)break;E=h;}}}throw r.throwIfAborted(),new c(It,{currentBlockHeight:R,lastValidBlockHeight:i})}finally{a.abort();}}}var oa=40;function hu({rpc:e,rpcSubscriptions:n}){return async function({abortSignal:r,commitment:o,currentNonceValue:i,nonceAccountAddress:a}){let s=new gt;function u(){s.abort();}r.addEventListener("abort",u,{signal:s.signal});let _=await n.accountNotifications(a,{commitment:o,encoding:"base64"}).subscribe({abortSignal:s.signal}),d=je(),l=En();function R([m]){let h=l.encode(m).slice(oa,oa+32);return d.decode(h)}let E=(async()=>{for await(let m of _){let k=R(m.value.data);if(k!==i)throw new c(xe,{actualNonceValue:k,expectedNonceValue:i})}})(),T=(async()=>{let{value:m}=await e.getAccountInfo(a,{commitment:o,dataSlice:{length:32,offset:oa},encoding:"base58"}).send({abortSignal:s.signal});if(!m)throw new c(ht,{nonceAccountAddress:a});let k=m.data[0];if(k!==i)throw new c(xe,{actualNonceValue:k,expectedNonceValue:i});await new Promise(()=>{});})();try{return await ve([E,T])}finally{s.abort();}}}function an({rpc:e,rpcSubscriptions:n}){return async function({abortSignal:r,commitment:o,signature:i}){let a=new gt;function s(){a.abort();}r.addEventListener("abort",s,{signal:a.signal});let u=await n.signatureNotifications(i,{commitment:o}).subscribe({abortSignal:a.signal}),_=(async()=>{for await(let l of u){if(l.value.err)throw Ie(l.value.err);return}})(),d=(async()=>{let{value:l}=await e.getSignatureStatuses([i]).send({abortSignal:a.signal}),R=l[0];if(R!=null&&R.err)throw Ie(R.err);if(R!=null&&R.confirmationStatus&&Ze(R.confirmationStatus,o)>=0)return;await new Promise(()=>{});})();try{return await ve([_,d])}finally{a.abort();}}}async function Cu({abortSignal:e,commitment:n}){return await new Promise((t,r)=>{let o=u=>{clearTimeout(s);let _=new DOMException(u.target.reason,"AbortError");r(_);};e.addEventListener("abort",o);let i=n==="processed"?3e4:6e4,a=performance.now(),s=setTimeout(()=>{let u=performance.now()-a;r(new DOMException(`Timeout elapsed after ${u} ms`,"TimeoutError"));},i);})}async function ia(e,n,t){let{abortSignal:r,commitment:o,getRecentSignatureConfirmationPromise:i}=n;r==null||r.throwIfAborted();let a=new gt;if(r){let s=()=>{a.abort();};r.addEventListener("abort",s,{signal:a.signal});}try{let s=t({...n,abortSignal:a.signal});return await ve([i({abortSignal:a.signal,commitment:o,signature:e}),...s])}finally{a.abort();}}async function Lu(e){await ia(Ee(e.transaction),e,function({abortSignal:t,commitment:r,getNonceInvalidationPromise:o,transaction:i}){return [o({abortSignal:t,commitment:r,currentNonceValue:i.lifetimeConstraint.nonce,nonceAccountAddress:i.lifetimeConstraint.nonceAccountAddress})]});}async function bu(e){await ia(Ee(e.transaction),e,function({abortSignal:t,commitment:r,getBlockHeightExceedencePromise:o,transaction:i}){return [o({abortSignal:t,commitment:r,lastValidBlockHeight:i.lifetimeConstraint.lastValidBlockHeight})]});}async function Du(e){await ia(e.signature,e,function({abortSignal:t,commitment:r,getTimeoutPromise:o}){return [o({abortSignal:t,commitment:r})]});}async function wu({abortSignal:e,commitment:n,confirmSignatureOnlyTransaction:t,lamports:r,recipientAddress:o,rpc:i}){let a=await i.requestAirdrop(o,r,{commitment:n}).send({abortSignal:e});return await t({abortSignal:e,commitment:n,signature:a}),a}function gp({rpc:e,rpcSubscriptions:n}){let t=an({rpc:e,rpcSubscriptions:n});async function r(o){await Du({...o,getRecentSignatureConfirmationPromise:t,getTimeoutPromise:Cu});}return async function(i){return await wu({...i,confirmSignatureOnlyTransaction:r,rpc:e})}}async function yu(e,n,t){if(e.length===0)return {};let r=await Wa(n,e,t);return ja(r),Ya(r),r.reduce((o,i)=>({...o,[i.address]:i.data.addresses}),{})}async function yp(e,n,t){let o=("addressTableLookups"in e&&e.addressTableLookups!==void 0&&e.addressTableLookups.length>0?e.addressTableLookups:[]).map(u=>u.lookupTableAddress),{lastValidBlockHeight:i,...a}=t!=null?t:{},s=o.length>0?await yu(o,n,a):{};return Ws(e,{addressesByLookupTableAddress:s,lastValidBlockHeight:i})}function vp(e){let n={ACCOUNT_STORAGE_OVERHEAD:128n,DEFAULT_EXEMPTION_THRESHOLD:2n,DEFAULT_LAMPORTS_PER_BYTE_YEAR:3480n};return (n.ACCOUNT_STORAGE_OVERHEAD+e)*n.DEFAULT_LAMPORTS_PER_BYTE_YEAR*n.DEFAULT_EXEMPTION_THRESHOLD}function RS(e,n){return !(n!=null&&n.preflightCommitment)&&Ze(e,"finalized")<0?{...n,preflightCommitment:e}:n}async function Tt({abortSignal:e,commitment:n,rpc:t,transaction:r,...o}){let i=tc(r);return await t.sendTransaction(i,{...RS(n,o),encoding:"base64"}).send({abortSignal:e})}async function Pu({abortSignal:e,commitment:n,confirmDurableNonceTransaction:t,rpc:r,transaction:o,...i}){let a=await Tt({...i,abortSignal:e,commitment:n,rpc:r,transaction:o});return await t({abortSignal:e,commitment:n,transaction:o}),a}async function vu({abortSignal:e,commitment:n,confirmRecentTransaction:t,rpc:r,transaction:o,...i}){let a=await Tt({...i,abortSignal:e,commitment:n,rpc:r,transaction:o});return await t({abortSignal:e,commitment:n,transaction:o}),a}function qp({rpc:e,rpcSubscriptions:n}){let t=hu({rpc:e,rpcSubscriptions:n}),r=an({rpc:e,rpcSubscriptions:n});function o(a){return async function(u){try{return await t(u)}catch(_){if(y(_,xe)){let d;try{let{value:l}=await e.getSignatureStatuses([a]).send({abortSignal:u.abortSignal});d=l[0];}catch{throw _}if(d==null)throw _;if(d.confirmationStatus!==null&&Ze(d.confirmationStatus,u.commitment)>=0){if(d.err!==null)throw Ie(d.err);return}return await new Promise(()=>{})}throw _}}}async function i(a){let s=o(Ee(a.transaction));await Lu({...a,getNonceInvalidationPromise:s,getRecentSignatureConfirmationPromise:r});}return async function(s,u){await Pu({...u,confirmDurableNonceTransaction:i,rpc:e,transaction:s});}}function nI({rpc:e,rpcSubscriptions:n}){let t=Iu({rpc:e,rpcSubscriptions:n}),r=an({rpc:e,rpcSubscriptions:n});async function o(i){await bu({...i,getBlockHeightExceedencePromise:t,getRecentSignatureConfirmationPromise:r});}return async function(a,s){await vu({...s,confirmRecentTransaction:o,rpc:e,transaction:a});}}function oI({rpc:e}){return async function(t,r){await Tt({...r,rpc:e,transaction:t});}}
|
|
13
13
|
|
|
14
14
|
exports.AccountRole = D;
|
|
15
15
|
exports.BASE_ACCOUNT_SIZE = XS;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana/kit",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.2-canary-20260313112147",
|
|
4
4
|
"description": "Solana Javascript API",
|
|
5
5
|
"homepage": "https://www.solanakit.com",
|
|
6
6
|
"exports": {
|
|
@@ -60,7 +60,8 @@
|
|
|
60
60
|
"types": "./dist/types/index.d.ts",
|
|
61
61
|
"type": "commonjs",
|
|
62
62
|
"files": [
|
|
63
|
-
"./dist/"
|
|
63
|
+
"./dist/",
|
|
64
|
+
"./src/"
|
|
64
65
|
],
|
|
65
66
|
"sideEffects": false,
|
|
66
67
|
"keywords": [
|
|
@@ -82,30 +83,30 @@
|
|
|
82
83
|
"maintained node versions"
|
|
83
84
|
],
|
|
84
85
|
"dependencies": {
|
|
85
|
-
"@solana/accounts": "6.3.
|
|
86
|
-
"@solana/addresses": "6.3.
|
|
87
|
-
"@solana/codecs": "6.3.
|
|
88
|
-
"@solana/errors": "6.3.
|
|
89
|
-
"@solana/functional": "6.3.
|
|
90
|
-
"@solana/
|
|
91
|
-
"@solana/
|
|
92
|
-
"@solana/keys": "6.3.
|
|
93
|
-
"@solana/offchain-messages": "6.3.
|
|
94
|
-
"@solana/plugin-
|
|
95
|
-
"@solana/plugin-
|
|
96
|
-
"@solana/program-client-core": "6.3.
|
|
97
|
-
"@solana/programs": "6.3.
|
|
98
|
-
"@solana/rpc": "6.3.
|
|
99
|
-
"@solana/rpc-
|
|
100
|
-
"@solana/rpc-spec-types": "6.3.
|
|
101
|
-
"@solana/rpc-
|
|
102
|
-
"@solana/
|
|
103
|
-
"@solana/
|
|
104
|
-
"@solana/
|
|
105
|
-
"@solana/
|
|
106
|
-
"@solana/transaction-
|
|
107
|
-
"@solana/
|
|
108
|
-
"@solana/transactions": "6.3.
|
|
86
|
+
"@solana/accounts": "6.3.2-canary-20260313112147",
|
|
87
|
+
"@solana/addresses": "6.3.2-canary-20260313112147",
|
|
88
|
+
"@solana/codecs": "6.3.2-canary-20260313112147",
|
|
89
|
+
"@solana/errors": "6.3.2-canary-20260313112147",
|
|
90
|
+
"@solana/functional": "6.3.2-canary-20260313112147",
|
|
91
|
+
"@solana/instructions": "6.3.2-canary-20260313112147",
|
|
92
|
+
"@solana/instruction-plans": "6.3.2-canary-20260313112147",
|
|
93
|
+
"@solana/keys": "6.3.2-canary-20260313112147",
|
|
94
|
+
"@solana/offchain-messages": "6.3.2-canary-20260313112147",
|
|
95
|
+
"@solana/plugin-core": "6.3.2-canary-20260313112147",
|
|
96
|
+
"@solana/plugin-interfaces": "6.3.2-canary-20260313112147",
|
|
97
|
+
"@solana/program-client-core": "6.3.2-canary-20260313112147",
|
|
98
|
+
"@solana/programs": "6.3.2-canary-20260313112147",
|
|
99
|
+
"@solana/rpc": "6.3.2-canary-20260313112147",
|
|
100
|
+
"@solana/rpc-api": "6.3.2-canary-20260313112147",
|
|
101
|
+
"@solana/rpc-spec-types": "6.3.2-canary-20260313112147",
|
|
102
|
+
"@solana/rpc-parsed-types": "6.3.2-canary-20260313112147",
|
|
103
|
+
"@solana/signers": "6.3.2-canary-20260313112147",
|
|
104
|
+
"@solana/sysvars": "6.3.2-canary-20260313112147",
|
|
105
|
+
"@solana/transaction-confirmation": "6.3.2-canary-20260313112147",
|
|
106
|
+
"@solana/rpc-subscriptions": "6.3.2-canary-20260313112147",
|
|
107
|
+
"@solana/transaction-messages": "6.3.2-canary-20260313112147",
|
|
108
|
+
"@solana/rpc-types": "6.3.2-canary-20260313112147",
|
|
109
|
+
"@solana/transactions": "6.3.2-canary-20260313112147"
|
|
109
110
|
},
|
|
110
111
|
"peerDependencies": {
|
|
111
112
|
"typescript": "^5.0.0"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Address } from '@solana/addresses';
|
|
2
|
+
import type { Signature } from '@solana/keys';
|
|
3
|
+
import type { RequestAirdropApi, Rpc } from '@solana/rpc';
|
|
4
|
+
import type { Commitment, Lamports } from '@solana/rpc-types';
|
|
5
|
+
import { waitForRecentTransactionConfirmationUntilTimeout } from '@solana/transaction-confirmation';
|
|
6
|
+
|
|
7
|
+
type RequestAndConfirmAirdropConfig = Readonly<{
|
|
8
|
+
abortSignal?: AbortSignal;
|
|
9
|
+
commitment: Commitment;
|
|
10
|
+
confirmSignatureOnlyTransaction: (
|
|
11
|
+
config: Omit<
|
|
12
|
+
Parameters<typeof waitForRecentTransactionConfirmationUntilTimeout>[0],
|
|
13
|
+
'getRecentSignatureConfirmationPromise' | 'getTimeoutPromise'
|
|
14
|
+
>,
|
|
15
|
+
) => Promise<void>;
|
|
16
|
+
lamports: Lamports;
|
|
17
|
+
recipientAddress: Address;
|
|
18
|
+
rpc: Rpc<RequestAirdropApi>;
|
|
19
|
+
}>;
|
|
20
|
+
|
|
21
|
+
export async function requestAndConfirmAirdrop_INTERNAL_ONLY_DO_NOT_EXPORT({
|
|
22
|
+
abortSignal,
|
|
23
|
+
commitment,
|
|
24
|
+
confirmSignatureOnlyTransaction,
|
|
25
|
+
lamports,
|
|
26
|
+
recipientAddress,
|
|
27
|
+
rpc,
|
|
28
|
+
}: RequestAndConfirmAirdropConfig): Promise<Signature> {
|
|
29
|
+
const airdropTransactionSignature = await rpc
|
|
30
|
+
.requestAirdrop(recipientAddress, lamports, { commitment })
|
|
31
|
+
.send({ abortSignal });
|
|
32
|
+
await confirmSignatureOnlyTransaction({
|
|
33
|
+
abortSignal,
|
|
34
|
+
commitment,
|
|
35
|
+
signature: airdropTransactionSignature,
|
|
36
|
+
});
|
|
37
|
+
return airdropTransactionSignature;
|
|
38
|
+
}
|
package/src/airdrop.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Signature } from '@solana/keys';
|
|
2
|
+
import type { GetSignatureStatusesApi, RequestAirdropApi, Rpc } from '@solana/rpc';
|
|
3
|
+
import type { RpcSubscriptions, SignatureNotificationsApi } from '@solana/rpc-subscriptions';
|
|
4
|
+
import {
|
|
5
|
+
createRecentSignatureConfirmationPromiseFactory,
|
|
6
|
+
getTimeoutPromise,
|
|
7
|
+
waitForRecentTransactionConfirmationUntilTimeout,
|
|
8
|
+
} from '@solana/transaction-confirmation';
|
|
9
|
+
|
|
10
|
+
import { requestAndConfirmAirdrop_INTERNAL_ONLY_DO_NOT_EXPORT } from './airdrop-internal';
|
|
11
|
+
|
|
12
|
+
type AirdropFunction = (
|
|
13
|
+
config: Omit<
|
|
14
|
+
Parameters<typeof requestAndConfirmAirdrop_INTERNAL_ONLY_DO_NOT_EXPORT>[0],
|
|
15
|
+
'confirmSignatureOnlyTransaction' | 'rpc'
|
|
16
|
+
>,
|
|
17
|
+
) => Promise<Signature>;
|
|
18
|
+
|
|
19
|
+
type AirdropFactoryConfig<TCluster> = {
|
|
20
|
+
/** An object that supports the {@link GetSignatureStatusesApi} and the {@link RequestAirdropApi} of the Solana RPC API */
|
|
21
|
+
rpc: Rpc<GetSignatureStatusesApi & RequestAirdropApi> & { '~cluster'?: TCluster };
|
|
22
|
+
/** An object that supports the {@link SignatureNotificationsApi} of the Solana RPC Subscriptions API */
|
|
23
|
+
rpcSubscriptions: RpcSubscriptions<SignatureNotificationsApi> & { '~cluster'?: TCluster };
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Returns a function that you can call to airdrop a certain amount of {@link Lamports} to a Solana
|
|
28
|
+
* address.
|
|
29
|
+
*
|
|
30
|
+
* > [!NOTE] This only works on test clusters.
|
|
31
|
+
*
|
|
32
|
+
* @param config
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* import { address, airdropFactory, createSolanaRpc, createSolanaRpcSubscriptions, devnet, lamports } from '@solana/kit';
|
|
37
|
+
*
|
|
38
|
+
* const rpc = createSolanaRpc(devnet('http://127.0.0.1:8899'));
|
|
39
|
+
* const rpcSubscriptions = createSolanaRpcSubscriptions(devnet('ws://127.0.0.1:8900'));
|
|
40
|
+
*
|
|
41
|
+
* const airdrop = airdropFactory({ rpc, rpcSubscriptions });
|
|
42
|
+
*
|
|
43
|
+
* await airdrop({
|
|
44
|
+
* commitment: 'confirmed',
|
|
45
|
+
* recipientAddress: address('FnHyam9w4NZoWR6mKN1CuGBritdsEWZQa4Z4oawLZGxa'),
|
|
46
|
+
* lamports: lamports(10_000_000n),
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export function airdropFactory({ rpc, rpcSubscriptions }: AirdropFactoryConfig<'devnet'>): AirdropFunction;
|
|
51
|
+
export function airdropFactory({ rpc, rpcSubscriptions }: AirdropFactoryConfig<'mainnet'>): AirdropFunction;
|
|
52
|
+
export function airdropFactory({ rpc, rpcSubscriptions }: AirdropFactoryConfig<'testnet'>): AirdropFunction;
|
|
53
|
+
export function airdropFactory<TCluster extends 'devnet' | 'mainnet' | 'testnet' | void = void>({
|
|
54
|
+
rpc,
|
|
55
|
+
rpcSubscriptions,
|
|
56
|
+
}: AirdropFactoryConfig<TCluster>): AirdropFunction {
|
|
57
|
+
const getRecentSignatureConfirmationPromise = createRecentSignatureConfirmationPromiseFactory({
|
|
58
|
+
rpc,
|
|
59
|
+
rpcSubscriptions,
|
|
60
|
+
} as Parameters<typeof createRecentSignatureConfirmationPromiseFactory>[0]);
|
|
61
|
+
async function confirmSignatureOnlyTransaction(
|
|
62
|
+
config: Omit<
|
|
63
|
+
Parameters<typeof waitForRecentTransactionConfirmationUntilTimeout>[0],
|
|
64
|
+
'getRecentSignatureConfirmationPromise' | 'getTimeoutPromise'
|
|
65
|
+
>,
|
|
66
|
+
) {
|
|
67
|
+
await waitForRecentTransactionConfirmationUntilTimeout({
|
|
68
|
+
...config,
|
|
69
|
+
getRecentSignatureConfirmationPromise,
|
|
70
|
+
getTimeoutPromise,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return async function airdrop(config) {
|
|
74
|
+
return await requestAndConfirmAirdrop_INTERNAL_ONLY_DO_NOT_EXPORT({
|
|
75
|
+
...config,
|
|
76
|
+
confirmSignatureOnlyTransaction,
|
|
77
|
+
rpc,
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type FetchAccountsConfig } from '@solana/accounts';
|
|
2
|
+
import type { GetMultipleAccountsApi, Rpc } from '@solana/rpc';
|
|
3
|
+
import {
|
|
4
|
+
CompiledTransactionMessage,
|
|
5
|
+
CompiledTransactionMessageWithLifetime,
|
|
6
|
+
decompileTransactionMessage,
|
|
7
|
+
TransactionMessage,
|
|
8
|
+
TransactionMessageWithFeePayer,
|
|
9
|
+
TransactionMessageWithLifetime,
|
|
10
|
+
} from '@solana/transaction-messages';
|
|
11
|
+
|
|
12
|
+
import { fetchAddressesForLookupTables } from './fetch-lookup-tables';
|
|
13
|
+
|
|
14
|
+
type DecompileTransactionMessageFetchingLookupTablesConfig = FetchAccountsConfig & {
|
|
15
|
+
lastValidBlockHeight?: bigint;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Returns a {@link TransactionMessage} from a {@link CompiledTransactionMessage}. If any of the
|
|
20
|
+
* accounts in the compiled message require an address lookup table to find their address, this
|
|
21
|
+
* function will use the supplied RPC instance to fetch the contents of the address lookup table
|
|
22
|
+
* from the network.
|
|
23
|
+
*
|
|
24
|
+
* @param rpc An object that supports the {@link GetMultipleAccountsApi} of the Solana RPC API
|
|
25
|
+
* @param config
|
|
26
|
+
*/
|
|
27
|
+
export async function decompileTransactionMessageFetchingLookupTables(
|
|
28
|
+
compiledTransactionMessage: CompiledTransactionMessage & CompiledTransactionMessageWithLifetime,
|
|
29
|
+
rpc: Rpc<GetMultipleAccountsApi>,
|
|
30
|
+
config?: DecompileTransactionMessageFetchingLookupTablesConfig,
|
|
31
|
+
): Promise<TransactionMessage & TransactionMessageWithFeePayer & TransactionMessageWithLifetime> {
|
|
32
|
+
const lookupTables =
|
|
33
|
+
'addressTableLookups' in compiledTransactionMessage &&
|
|
34
|
+
compiledTransactionMessage.addressTableLookups !== undefined &&
|
|
35
|
+
compiledTransactionMessage.addressTableLookups.length > 0
|
|
36
|
+
? compiledTransactionMessage.addressTableLookups
|
|
37
|
+
: [];
|
|
38
|
+
const lookupTableAddresses = lookupTables.map(l => l.lookupTableAddress);
|
|
39
|
+
|
|
40
|
+
const { lastValidBlockHeight, ...fetchAccountsConfig } = config ?? {};
|
|
41
|
+
const addressesByLookupTableAddress =
|
|
42
|
+
lookupTableAddresses.length > 0
|
|
43
|
+
? await fetchAddressesForLookupTables(lookupTableAddresses, rpc, fetchAccountsConfig)
|
|
44
|
+
: {};
|
|
45
|
+
|
|
46
|
+
return decompileTransactionMessage(compiledTransactionMessage, {
|
|
47
|
+
addressesByLookupTableAddress,
|
|
48
|
+
lastValidBlockHeight,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assertAccountsDecoded,
|
|
3
|
+
assertAccountsExist,
|
|
4
|
+
type FetchAccountsConfig,
|
|
5
|
+
fetchJsonParsedAccounts,
|
|
6
|
+
} from '@solana/accounts';
|
|
7
|
+
import type { Address } from '@solana/addresses';
|
|
8
|
+
import type { GetMultipleAccountsApi, Rpc } from '@solana/rpc';
|
|
9
|
+
import { type AddressesByLookupTableAddress } from '@solana/transaction-messages';
|
|
10
|
+
|
|
11
|
+
type FetchedAddressLookup = {
|
|
12
|
+
addresses: Address[];
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Given a list of addresses belonging to address lookup tables, returns a map of lookup table
|
|
17
|
+
* addresses to an ordered array of the addresses they contain.
|
|
18
|
+
*
|
|
19
|
+
* @param rpc An object that supports the {@link GetMultipleAccountsApi} of the Solana RPC API
|
|
20
|
+
* @param config
|
|
21
|
+
*/
|
|
22
|
+
export async function fetchAddressesForLookupTables(
|
|
23
|
+
lookupTableAddresses: Address[],
|
|
24
|
+
rpc: Rpc<GetMultipleAccountsApi>,
|
|
25
|
+
config?: FetchAccountsConfig,
|
|
26
|
+
): Promise<AddressesByLookupTableAddress> {
|
|
27
|
+
if (lookupTableAddresses.length === 0) {
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const fetchedLookupTables = await fetchJsonParsedAccounts<FetchedAddressLookup[]>(
|
|
32
|
+
rpc,
|
|
33
|
+
lookupTableAddresses,
|
|
34
|
+
config,
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
assertAccountsDecoded(fetchedLookupTables);
|
|
38
|
+
assertAccountsExist(fetchedLookupTables);
|
|
39
|
+
|
|
40
|
+
return fetchedLookupTables.reduce<AddressesByLookupTableAddress>((acc, lookup) => {
|
|
41
|
+
return {
|
|
42
|
+
...acc,
|
|
43
|
+
[lookup.address]: lookup.data.addresses,
|
|
44
|
+
};
|
|
45
|
+
}, {});
|
|
46
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Lamports } from '@solana/rpc-types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Calculates the minimum {@link Lamports | lamports} required to make an account rent exempt for a
|
|
5
|
+
* given data size, without performing an RPC call.
|
|
6
|
+
*
|
|
7
|
+
* Values are sourced from the on-chain rent parameters in the Solana runtime:
|
|
8
|
+
* https://github.com/anza-xyz/solana-sdk/blob/c07f692e41d757057c8700211a9300cdcd6d33b1/rent/src/lib.rs#L93-L97
|
|
9
|
+
*
|
|
10
|
+
* Note that this logic may change, or be incorrect depending on the cluster you are connected to.
|
|
11
|
+
* You can always use the RPC method `getMinimumBalanceForRentExemption` to get the current value.
|
|
12
|
+
*
|
|
13
|
+
* @param space The number of bytes of account data.
|
|
14
|
+
*/
|
|
15
|
+
export function getMinimumBalanceForRentExemption(space: bigint): Lamports {
|
|
16
|
+
const RENT = {
|
|
17
|
+
ACCOUNT_STORAGE_OVERHEAD: 128n,
|
|
18
|
+
DEFAULT_EXEMPTION_THRESHOLD: 2n,
|
|
19
|
+
DEFAULT_LAMPORTS_PER_BYTE_YEAR: 3_480n,
|
|
20
|
+
} as const;
|
|
21
|
+
const requiredLamports =
|
|
22
|
+
(RENT.ACCOUNT_STORAGE_OVERHEAD + space) *
|
|
23
|
+
RENT.DEFAULT_LAMPORTS_PER_BYTE_YEAR *
|
|
24
|
+
RENT.DEFAULT_EXEMPTION_THRESHOLD;
|
|
25
|
+
return requiredLamports as Lamports;
|
|
26
|
+
}
|