@farcaster/frame-sdk 0.0.0-canary-20250513054347 → 0.0.0-canary-20250513182339

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.
@@ -51,8 +51,12 @@ export const evmProvider = Provider.from({
51
51
  },
52
52
  });
53
53
  export async function getEvmProvider() {
54
- const capabilities = await frameHost.getCapabilities();
55
- if (!capabilities.includes('wallet.getEvmProvider')) {
54
+ let capabilities;
55
+ try {
56
+ capabilities = await frameHost.getCapabilities();
57
+ }
58
+ catch { }
59
+ if (!capabilities?.includes('wallet.getEvmProvider')) {
56
60
  return undefined;
57
61
  }
58
62
  return evmProvider;
package/dist/index.min.js CHANGED
@@ -10,7 +10,7 @@ ${n}. `+s+o;break;case"simulate":c=`Simulation failed.
10
10
  Message: ${n}.
11
11
  `+s+o;break;default:c=`Unknown action '${(u=>u)(e)}'`}super(c),this.signature=void 0,this.transactionMessage=void 0,this.transactionLogs=void 0,this.signature=t,this.transactionMessage=n,this.transactionLogs=i||void 0}get transactionError(){return{message:this.transactionMessage,logs:Array.isArray(this.transactionLogs)?this.transactionLogs:void 0}}get logs(){let e=this.transactionLogs;if(!(e!=null&&typeof e=="object"&&"then"in e))return e}async getLogs(e){return Array.isArray(this.transactionLogs)||(this.transactionLogs=new Promise((t,n)=>{e.getTransaction(this.signature).then(i=>{if(i&&i.meta&&i.meta.logMessages){let s=i.meta.logMessages;this.transactionLogs=s,t(s)}else n(new Error("Log messages not found"))}).catch(n)})),await this.transactionLogs}};var Q=class extends Error{constructor({code:e,message:t,data:n},i){super(i!=null?`${i}: ${t}`:t),this.code=void 0,this.data=void 0,this.code=e,this.data=n,this.name="SolanaJSONRPCError"}};async function $d(r,e,t,n){let i=n&&{skipPreflight:n.skipPreflight,preflightCommitment:n.preflightCommitment||n.commitment,maxRetries:n.maxRetries,minContextSlot:n.minContextSlot},s=await r.sendTransaction(e,t,i),o;if(e.recentBlockhash!=null&&e.lastValidBlockHeight!=null)o=(await r.confirmTransaction({abortSignal:n?.abortSignal,signature:s,blockhash:e.recentBlockhash,lastValidBlockHeight:e.lastValidBlockHeight},n&&n.commitment)).value;else if(e.minNonceContextSlot!=null&&e.nonceInfo!=null){let{nonceInstruction:c}=e.nonceInfo,u=c.keys[0].pubkey;o=(await r.confirmTransaction({abortSignal:n?.abortSignal,minContextSlot:e.minNonceContextSlot,nonceAccountPubkey:u,nonceValue:e.nonceInfo.nonce,signature:s},n&&n.commitment)).value}else n?.abortSignal!=null&&console.warn("sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` or a combination of `nonceInfo` and `minNonceContextSlot` are abortable."),o=(await r.confirmTransaction(s,n&&n.commitment)).value;if(o.err)throw s!=null?new as({action:"send",signature:s,transactionMessage:`Status: (${JSON.stringify(o)})`}):new Error(`Transaction ${s} failed (${JSON.stringify(o)})`);return s}function Wn(r){return new Promise(e=>setTimeout(e,r))}function we(r,e){let t=r.layout.span>=0?r.layout.span:oh(r,e),n=ae.Buffer.alloc(t),i=Object.assign({instruction:r.index},e);return r.layout.encode(i,n),n}var x1=E.nu64("lamportsPerSignature"),fh=E.struct([E.u32("version"),E.u32("state"),ye("authorizedPubkey"),ye("nonce"),E.struct([x1],"feeCalculator")]),Wd=fh.span,yu=class r{constructor(e){this.authorizedPubkey=void 0,this.nonce=void 0,this.feeCalculator=void 0,this.authorizedPubkey=e.authorizedPubkey,this.nonce=e.nonce,this.feeCalculator=e.feeCalculator}static fromAccountData(e){let t=fh.decode(_e(e),0);return new r({authorizedPubkey:new ce(t.authorizedPubkey),nonce:new ce(t.nonce).toString(),feeCalculator:t.feeCalculator})}};function vi(r){let e=(0,nh.blob)(8,r),t=e.decode.bind(e),n=e.encode.bind(e),i=e,s=Kl();return i.decode=(o,c)=>{let u=t(o,c);return s.decode(u)},i.encode=(o,c,u)=>{let p=s.encode(o);return n(p,c,u)},i}var nr=Object.freeze({Create:{index:0,layout:E.struct([E.u32("instruction"),E.ns64("lamports"),E.ns64("space"),ye("programId")])},Assign:{index:1,layout:E.struct([E.u32("instruction"),ye("programId")])},Transfer:{index:2,layout:E.struct([E.u32("instruction"),vi("lamports")])},CreateWithSeed:{index:3,layout:E.struct([E.u32("instruction"),ye("base"),bi("seed"),E.ns64("lamports"),E.ns64("space"),ye("programId")])},AdvanceNonceAccount:{index:4,layout:E.struct([E.u32("instruction")])},WithdrawNonceAccount:{index:5,layout:E.struct([E.u32("instruction"),E.ns64("lamports")])},InitializeNonceAccount:{index:6,layout:E.struct([E.u32("instruction"),ye("authorized")])},AuthorizeNonceAccount:{index:7,layout:E.struct([E.u32("instruction"),ye("authorized")])},Allocate:{index:8,layout:E.struct([E.u32("instruction"),E.ns64("space")])},AllocateWithSeed:{index:9,layout:E.struct([E.u32("instruction"),ye("base"),bi("seed"),E.ns64("space"),ye("programId")])},AssignWithSeed:{index:10,layout:E.struct([E.u32("instruction"),ye("base"),bi("seed"),ye("programId")])},TransferWithSeed:{index:11,layout:E.struct([E.u32("instruction"),vi("lamports"),bi("seed"),ye("programId")])},UpgradeNonceAccount:{index:12,layout:E.struct([E.u32("instruction")])}}),Dt=class r{constructor(){}static createAccount(e){let t=nr.Create,n=we(t,{lamports:e.lamports,space:e.space,programId:_e(e.programId.toBuffer())});return new Te({keys:[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.newAccountPubkey,isSigner:!0,isWritable:!0}],programId:this.programId,data:n})}static transfer(e){let t,n;if("basePubkey"in e){let i=nr.TransferWithSeed;t=we(i,{lamports:BigInt(e.lamports),seed:e.seed,programId:_e(e.programId.toBuffer())}),n=[{pubkey:e.fromPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0}]}else{let i=nr.Transfer;t=we(i,{lamports:BigInt(e.lamports)}),n=[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0}]}return new Te({keys:n,programId:this.programId,data:t})}static assign(e){let t,n;if("basePubkey"in e){let i=nr.AssignWithSeed;t=we(i,{base:_e(e.basePubkey.toBuffer()),seed:e.seed,programId:_e(e.programId.toBuffer())}),n=[{pubkey:e.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1}]}else{let i=nr.Assign;t=we(i,{programId:_e(e.programId.toBuffer())}),n=[{pubkey:e.accountPubkey,isSigner:!0,isWritable:!0}]}return new Te({keys:n,programId:this.programId,data:t})}static createAccountWithSeed(e){let t=nr.CreateWithSeed,n=we(t,{base:_e(e.basePubkey.toBuffer()),seed:e.seed,lamports:e.lamports,space:e.space,programId:_e(e.programId.toBuffer())}),i=[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.newAccountPubkey,isSigner:!1,isWritable:!0}];return e.basePubkey.equals(e.fromPubkey)||i.push({pubkey:e.basePubkey,isSigner:!0,isWritable:!1}),new Te({keys:i,programId:this.programId,data:n})}static createNonceAccount(e){let t=new Re;"basePubkey"in e&&"seed"in e?t.add(r.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.noncePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:Wd,programId:this.programId})):t.add(r.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.noncePubkey,lamports:e.lamports,space:Wd,programId:this.programId}));let n={noncePubkey:e.noncePubkey,authorizedPubkey:e.authorizedPubkey};return t.add(this.nonceInitialize(n)),t}static nonceInitialize(e){let t=nr.InitializeNonceAccount,n=we(t,{authorized:_e(e.authorizedPubkey.toBuffer())}),i={keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:ou,isSigner:!1,isWritable:!1},{pubkey:os,isSigner:!1,isWritable:!1}],programId:this.programId,data:n};return new Te(i)}static nonceAdvance(e){let t=nr.AdvanceNonceAccount,n=we(t),i={keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:ou,isSigner:!1,isWritable:!1},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:n};return new Te(i)}static nonceWithdraw(e){let t=nr.WithdrawNonceAccount,n=we(t,{lamports:e.lamports});return new Te({keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0},{pubkey:ou,isSigner:!1,isWritable:!1},{pubkey:os,isSigner:!1,isWritable:!1},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:n})}static nonceAuthorize(e){let t=nr.AuthorizeNonceAccount,n=we(t,{authorized:_e(e.newAuthorizedPubkey.toBuffer())});return new Te({keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:n})}static allocate(e){let t,n;if("basePubkey"in e){let i=nr.AllocateWithSeed;t=we(i,{base:_e(e.basePubkey.toBuffer()),seed:e.seed,space:e.space,programId:_e(e.programId.toBuffer())}),n=[{pubkey:e.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1}]}else{let i=nr.Allocate;t=we(i,{space:e.space}),n=[{pubkey:e.accountPubkey,isSigner:!0,isWritable:!0}]}return new Te({keys:n,programId:this.programId,data:t})}};Dt.programId=new ce("11111111111111111111111111111111");var I1=jn-300,_u=class r{constructor(){}static getMinNumSignatures(e){return 2*(Math.ceil(e/r.chunkSize)+1+1)}static async load(e,t,n,i,s){{let b=await e.getMinimumBalanceForRentExemption(s.length),A=await e.getAccountInfo(n.publicKey,"confirmed"),S=null;if(A!==null){if(A.executable)return console.error("Program load failed, account is already executable"),!1;A.data.length!==s.length&&(S=S||new Re,S.add(Dt.allocate({accountPubkey:n.publicKey,space:s.length}))),A.owner.equals(i)||(S=S||new Re,S.add(Dt.assign({accountPubkey:n.publicKey,programId:i}))),A.lamports<b&&(S=S||new Re,S.add(Dt.transfer({fromPubkey:t.publicKey,toPubkey:n.publicKey,lamports:b-A.lamports})))}else S=new Re().add(Dt.createAccount({fromPubkey:t.publicKey,newAccountPubkey:n.publicKey,lamports:b>0?b:1,space:s.length,programId:i}));S!==null&&await $d(e,S,[t,n],{commitment:"confirmed"})}let o=E.struct([E.u32("instruction"),E.u32("offset"),E.u32("bytesLength"),E.u32("bytesLengthPadding"),E.seq(E.u8("byte"),E.offset(E.u32(),-8),"bytes")]),c=r.chunkSize,u=0,p=s,m=[];for(;p.length>0;){let b=p.slice(0,c),A=ae.Buffer.alloc(c+16);o.encode({instruction:0,offset:u,bytes:b,bytesLength:0,bytesLengthPadding:0},A);let S=new Re().add({keys:[{pubkey:n.publicKey,isSigner:!0,isWritable:!0}],programId:i,data:A});m.push($d(e,S,[t,n],{commitment:"confirmed"})),e._rpcEndpoint.includes("solana.com")&&await Wn(1e3/4),u+=c,p=p.slice(c)}await Promise.all(m);{let b=E.struct([E.u32("instruction")]),A=ae.Buffer.alloc(b.span);b.encode({instruction:1},A);let S=new Re().add({keys:[{pubkey:n.publicKey,isSigner:!0,isWritable:!0},{pubkey:os,isSigner:!1,isWritable:!1}],programId:i,data:A}),T="processed",I=await e.sendTransaction(S,[t,n],{preflightCommitment:T}),{context:x,value:B}=await e.confirmTransaction({signature:I,lastValidBlockHeight:S.lastValidBlockHeight,blockhash:S.recentBlockhash},T);if(B.err)throw new Error(`Transaction ${I} failed (${JSON.stringify(B)})`);for(;;){try{if(await e.getSlot({commitment:T})>x.slot)break}catch{}await new Promise(U=>setTimeout(U,Math.round(uh/2)))}}return!0}};_u.chunkSize=I1;var DA=new ce("BPFLoader2111111111111111111111111111111111");function O1(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var cu,qd;function k1(){if(qd)return cu;qd=1;var r=Object.prototype.toString,e=Object.keys||function(n){var i=[];for(var s in n)i.push(s);return i};function t(n,i){var s,o,c,u,p,m,b;if(n===!0)return"true";if(n===!1)return"false";switch(typeof n){case"object":if(n===null)return null;if(n.toJSON&&typeof n.toJSON=="function")return t(n.toJSON(),i);if(b=r.call(n),b==="[object Array]"){for(c="[",o=n.length-1,s=0;s<o;s++)c+=t(n[s],!0)+",";return o>-1&&(c+=t(n[s],!0)),c+"]"}else if(b==="[object Object]"){for(u=e(n).sort(),o=u.length,c="",s=0;s<o;)p=u[s],m=t(n[p],!1),m!==void 0&&(c&&(c+=","),c+=JSON.stringify(p)+":"+m),s++;return"{"+c+"}"}else return JSON.stringify(n);case"function":case"undefined":return i?null:void 0;case"string":return JSON.stringify(n);default:return isFinite(n)?n:null}}return cu=function(n){var i=t(n,!1);if(i!==void 0)return""+i},cu}var T1=k1(),jd=O1(T1),ns=32;function uu(r){let e=0;for(;r>1;)r/=2,e++;return e}function N1(r){return r===0?1:(r--,r|=r>>1,r|=r>>2,r|=r>>4,r|=r>>8,r|=r>>16,r|=r>>32,r+1)}var bu=class{constructor(e,t,n,i,s){this.slotsPerEpoch=void 0,this.leaderScheduleSlotOffset=void 0,this.warmup=void 0,this.firstNormalEpoch=void 0,this.firstNormalSlot=void 0,this.slotsPerEpoch=e,this.leaderScheduleSlotOffset=t,this.warmup=n,this.firstNormalEpoch=i,this.firstNormalSlot=s}getEpoch(e){return this.getEpochAndSlotIndex(e)[0]}getEpochAndSlotIndex(e){if(e<this.firstNormalSlot){let t=uu(N1(e+ns+1))-uu(ns)-1,n=this.getSlotsInEpoch(t),i=e-(n-ns);return[t,i]}else{let t=e-this.firstNormalSlot,n=Math.floor(t/this.slotsPerEpoch),i=this.firstNormalEpoch+n,s=t%this.slotsPerEpoch;return[i,s]}}getFirstSlotInEpoch(e){return e<=this.firstNormalEpoch?(Math.pow(2,e)-1)*ns:(e-this.firstNormalEpoch)*this.slotsPerEpoch+this.firstNormalSlot}getLastSlotInEpoch(e){return this.getFirstSlotInEpoch(e)+this.getSlotsInEpoch(e)-1}getSlotsInEpoch(e){return e<this.firstNormalEpoch?Math.pow(2,e+uu(ns)):this.slotsPerEpoch}},B1=globalThis.fetch,wu=class extends Ad{constructor(e,t,n){let i=s=>{let o=Sd(s,{autoconnect:!0,max_reconnects:5,reconnect:!0,reconnect_interval:1e3,...t});return"socket"in o?this.underlyingSocket=o.socket:this.underlyingSocket=o,o};super(i,e,t,n),this.underlyingSocket=void 0}call(...e){let t=this.underlyingSocket?.readyState;return t===1?super.call(...e):Promise.reject(new Error("Tried to call a JSON-RPC method `"+e[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+t+")"))}notify(...e){let t=this.underlyingSocket?.readyState;return t===1?super.notify(...e):Promise.reject(new Error("Tried to send a JSON-RPC notification `"+e[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+t+")"))}};function L1(r,e){let t;try{t=r.layout.decode(e)}catch(n){throw new Error("invalid instruction; "+n)}if(t.typeIndex!==r.index)throw new Error(`invalid account data; account type mismatch ${t.typeIndex} != ${r.index}`);return t}var Kd=56,Go=class{constructor(e){this.key=void 0,this.state=void 0,this.key=e.key,this.state=e.state}isActive(){let e=BigInt("0xffffffffffffffff");return this.state.deactivationSlot===e}static deserialize(e){let t=L1(C1,e),n=e.length-Kd;xe(n>=0,"lookup table is invalid"),xe(n%32===0,"lookup table is invalid");let i=n/32,{addresses:s}=E.struct([E.seq(ye(),i,"addresses")]).decode(e.slice(Kd));return{deactivationSlot:t.deactivationSlot,lastExtendedSlot:t.lastExtendedSlot,lastExtendedSlotStartIndex:t.lastExtendedStartIndex,authority:t.authority.length!==0?new ce(t.authority[0]):void 0,addresses:s.map(o=>new ce(o))}}},C1={index:1,layout:E.struct([E.u32("typeIndex"),vi("deactivationSlot"),E.nu64("lastExtendedSlot"),E.u8("lastExtendedStartIndex"),E.u8(),E.seq(ye(),E.offset(E.u8(),-1),"authority")])},P1=/^[^:]+:\/\/([^:[]+|\[[^\]]+\])(:\d+)?(.*)/i;function M1(r){let e=r.match(P1);if(e==null)throw TypeError(`Failed to validate endpoint URL \`${r}\``);let[t,n,i,s]=e,o=r.startsWith("https:")?"wss:":"ws:",c=i==null?null:parseInt(i.slice(1),10),u=c==null?"":`:${c+1}`;return`${o}//${n}${u}${s}`}var qe=_i(ko(ce),z(),r=>new ce(r)),lh=To([z(),Me("base64")]),Nu=_i(ko(ae.Buffer),lh,r=>ae.Buffer.from(r[0],"base64")),U1=30*1e3;function D1(r){if(/^https?:/.test(r)===!1)throw new TypeError("Endpoint URL must start with `http:` or `https:`.");return r}function Be(r){let e,t;if(typeof r=="string")e=r;else if(r){let{commitment:n,...i}=r;e=n,t=i}return{commitment:e,config:t}}function Hd(r){return r.map(e=>"memcmp"in e?{...e,memcmp:{...e.memcmp,encoding:e.memcmp.encoding??"base58"}}:e)}function dh(r){return Ot([P({jsonrpc:Me("2.0"),id:z(),result:r}),P({jsonrpc:Me("2.0"),id:z(),error:P({code:$n(),message:z(),data:ne(Yl())})})])}var z1=dh($n());function ge(r){return _i(dh(r),z1,e=>"error"in e?e:{...e,result:$(e.result,r)})}function Ze(r){return ge(P({context:P({slot:O()}),value:r}))}function Qo(r){return P({context:P({slot:O()}),value:r})}function fu(r,e){return r===0?new Ko({header:e.header,staticAccountKeys:e.accountKeys.map(t=>new ce(t)),recentBlockhash:e.recentBlockhash,compiledInstructions:e.instructions.map(t=>({programIdIndex:t.programIdIndex,accountKeyIndexes:t.accounts,data:vt.default.decode(t.data)})),addressTableLookups:e.addressTableLookups}):new ln(e)}var F1=P({foundation:O(),foundationTerm:O(),initial:O(),taper:O(),terminal:O()}),V1=ge(W(j(P({epoch:O(),effectiveSlot:O(),amount:O(),postBalance:O(),commission:ne(j(O()))})))),$1=W(P({slot:O(),prioritizationFee:O()})),W1=P({total:O(),validator:O(),foundation:O(),epoch:O()}),q1=P({epoch:O(),slotIndex:O(),slotsInEpoch:O(),absoluteSlot:O(),blockHeight:ne(O()),transactionCount:ne(O())}),j1=P({slotsPerEpoch:O(),leaderScheduleSlotOffset:O(),warmup:ur(),firstNormalEpoch:O(),firstNormalSlot:O()}),K1=qc(z(),W(O())),Kn=j(Ot([P({}),z()])),H1=P({err:Kn}),G1=Me("receivedSignature"),Z1=P({"solana-core":z(),"feature-set":ne(O())}),Y1=P({program:z(),programId:qe,parsed:$n()}),X1=P({programId:qe,accounts:W(qe),data:z()}),Gd=Ze(P({err:j(Ot([P({}),z()])),logs:j(W(z())),accounts:ne(j(W(j(P({executable:ur(),owner:z(),lamports:O(),data:W(z()),rentEpoch:ne(O())}))))),unitsConsumed:ne(O()),returnData:ne(j(P({programId:z(),data:To([z(),Me("base64")])}))),innerInstructions:ne(j(W(P({index:O(),instructions:W(Ot([Y1,X1]))}))))})),J1=Ze(P({byIdentity:qc(z(),W(O())),range:P({firstSlot:O(),lastSlot:O()})}));function Q1(r,e,t,n,i,s){let o=t||B1,c;s!=null&&console.warn("You have supplied an `httpAgent` when creating a `Connection` in a browser environment.It has been ignored; `httpAgent` is only used in Node environments.");let u;return n&&(u=async(m,b)=>{let A=await new Promise((S,T)=>{try{n(m,b,(I,x)=>S([I,x]))}catch(I){T(I)}});return await o(...A)}),new ih.default(async(m,b)=>{let A={method:"POST",body:m,agent:c,headers:Object.assign({"Content-Type":"application/json"},e||{},Qv)};try{let S=5,T,I=500;for(;u?T=await u(r,A):T=await o(r,A),!(T.status!==429||i===!0||(S-=1,S===0));)console.error(`Server responded with ${T.status} ${T.statusText}. Retrying after ${I}ms delay...`),await Wn(I),I*=2;let x=await T.text();T.ok?b(null,x):b(new Error(`${T.status} ${T.statusText}: ${x}`))}catch(S){S instanceof Error&&b(S)}},{})}function ev(r){return(e,t)=>new Promise((n,i)=>{r.request(e,t,(s,o)=>{if(s){i(s);return}n(o)})})}function tv(r){return e=>new Promise((t,n)=>{e.length===0&&t([]);let i=e.map(s=>r.request(s.methodName,s.args));r.request(i,(s,o)=>{if(s){n(s);return}t(o)})})}var rv=ge(F1),nv=ge(W1),iv=ge($1),sv=ge(q1),ov=ge(j1),av=ge(K1),cv=ge(O()),uv=Ze(P({total:O(),circulating:O(),nonCirculating:O(),nonCirculatingAccounts:W(qe)})),vu=P({amount:z(),uiAmount:j(O()),decimals:O(),uiAmountString:ne(z())}),fv=Ze(W(P({address:qe,amount:z(),uiAmount:j(O()),decimals:O(),uiAmountString:ne(z())}))),lv=Ze(W(P({pubkey:qe,account:P({executable:ur(),owner:qe,lamports:O(),data:Nu,rentEpoch:O()})}))),Eu=P({program:z(),parsed:$n(),space:O()}),dv=Ze(W(P({pubkey:qe,account:P({executable:ur(),owner:qe,lamports:O(),data:Eu,rentEpoch:O()})}))),hv=Ze(W(P({lamports:O(),address:qe}))),cs=P({executable:ur(),owner:qe,lamports:O(),data:Nu,rentEpoch:O()}),pv=P({pubkey:qe,account:cs}),mv=_i(Ot([ko(ae.Buffer),Eu]),Ot([lh,Eu]),r=>Array.isArray(r)?$(r,Nu):r),Ru=P({executable:ur(),owner:qe,lamports:O(),data:mv,rentEpoch:O()}),gv=P({pubkey:qe,account:Ru}),yv=P({state:Ot([Me("active"),Me("inactive"),Me("activating"),Me("deactivating")]),active:O(),inactive:O()}),_v=ge(W(P({signature:z(),slot:O(),err:Kn,memo:j(z()),blockTime:ne(j(O()))}))),bv=ge(W(P({signature:z(),slot:O(),err:Kn,memo:j(z()),blockTime:ne(j(O()))}))),wv=P({subscription:O(),result:Qo(cs)}),vv=P({pubkey:qe,account:cs}),Ev=P({subscription:O(),result:Qo(vv)}),Rv=P({parent:O(),slot:O(),root:O()}),Sv=P({subscription:O(),result:Rv}),Av=Ot([P({type:Ot([Me("firstShredReceived"),Me("completed"),Me("optimisticConfirmation"),Me("root")]),slot:O(),timestamp:O()}),P({type:Me("createdBank"),parent:O(),slot:O(),timestamp:O()}),P({type:Me("frozen"),slot:O(),timestamp:O(),stats:P({numTransactionEntries:O(),numSuccessfulTransactions:O(),numFailedTransactions:O(),maxTransactionsPerEntry:O()})}),P({type:Me("dead"),slot:O(),timestamp:O(),err:z()})]),xv=P({subscription:O(),result:Av}),Iv=P({subscription:O(),result:Qo(Ot([H1,G1]))}),Ov=P({subscription:O(),result:O()}),kv=P({pubkey:z(),gossip:j(z()),tpu:j(z()),rpc:j(z()),version:j(z())}),Zd=P({votePubkey:z(),nodePubkey:z(),activatedStake:O(),epochVoteAccount:ur(),epochCredits:W(To([O(),O(),O()])),commission:O(),lastVote:O(),rootSlot:j(O())}),Tv=ge(P({current:W(Zd),delinquent:W(Zd)})),Nv=Ot([Me("processed"),Me("confirmed"),Me("finalized")]),Bv=P({slot:O(),confirmations:j(O()),err:Kn,confirmationStatus:ne(Nv)}),Lv=Ze(W(j(Bv))),Cv=ge(O()),hh=P({accountKey:qe,writableIndexes:W(O()),readonlyIndexes:W(O())}),Bu=P({signatures:W(z()),message:P({accountKeys:W(z()),header:P({numRequiredSignatures:O(),numReadonlySignedAccounts:O(),numReadonlyUnsignedAccounts:O()}),instructions:W(P({accounts:W(O()),data:z(),programIdIndex:O()})),recentBlockhash:z(),addressTableLookups:ne(W(hh))})}),ph=P({pubkey:qe,signer:ur(),writable:ur(),source:ne(Ot([Me("transaction"),Me("lookupTable")]))}),mh=P({accountKeys:W(ph),signatures:W(z())}),gh=P({parsed:$n(),program:z(),programId:qe}),yh=P({accounts:W(qe),data:z(),programId:qe}),Pv=Ot([yh,gh]),Mv=Ot([P({parsed:$n(),program:z(),programId:z()}),P({accounts:W(z()),data:z(),programId:z()})]),_h=_i(Pv,Mv,r=>"accounts"in r?$(r,yh):$(r,gh)),bh=P({signatures:W(z()),message:P({accountKeys:W(ph),instructions:W(_h),recentBlockhash:z(),addressTableLookups:ne(j(W(hh)))})}),Zo=P({accountIndex:O(),mint:z(),owner:ne(z()),programId:ne(z()),uiTokenAmount:vu}),wh=P({writable:W(qe),readonly:W(qe)}),ea=P({err:Kn,fee:O(),innerInstructions:ne(j(W(P({index:O(),instructions:W(P({accounts:W(O()),data:z(),programIdIndex:O()}))})))),preBalances:W(O()),postBalances:W(O()),logMessages:ne(j(W(z()))),preTokenBalances:ne(j(W(Zo))),postTokenBalances:ne(j(W(Zo))),loadedAddresses:ne(wh),computeUnitsConsumed:ne(O())}),Lu=P({err:Kn,fee:O(),innerInstructions:ne(j(W(P({index:O(),instructions:W(_h)})))),preBalances:W(O()),postBalances:W(O()),logMessages:ne(j(W(z()))),preTokenBalances:ne(j(W(Zo))),postTokenBalances:ne(j(W(Zo))),loadedAddresses:ne(wh),computeUnitsConsumed:ne(O())}),Ri=Ot([Me(0),Me("legacy")]),Hn=P({pubkey:z(),lamports:O(),postBalance:j(O()),rewardType:j(z()),commission:ne(j(O()))}),Uv=ge(j(P({blockhash:z(),previousBlockhash:z(),parentSlot:O(),transactions:W(P({transaction:Bu,meta:j(ea),version:ne(Ri)})),rewards:ne(W(Hn)),blockTime:j(O()),blockHeight:j(O())}))),Dv=ge(j(P({blockhash:z(),previousBlockhash:z(),parentSlot:O(),rewards:ne(W(Hn)),blockTime:j(O()),blockHeight:j(O())}))),zv=ge(j(P({blockhash:z(),previousBlockhash:z(),parentSlot:O(),transactions:W(P({transaction:mh,meta:j(ea),version:ne(Ri)})),rewards:ne(W(Hn)),blockTime:j(O()),blockHeight:j(O())}))),Fv=ge(j(P({blockhash:z(),previousBlockhash:z(),parentSlot:O(),transactions:W(P({transaction:bh,meta:j(Lu),version:ne(Ri)})),rewards:ne(W(Hn)),blockTime:j(O()),blockHeight:j(O())}))),Vv=ge(j(P({blockhash:z(),previousBlockhash:z(),parentSlot:O(),transactions:W(P({transaction:mh,meta:j(Lu),version:ne(Ri)})),rewards:ne(W(Hn)),blockTime:j(O()),blockHeight:j(O())}))),$v=ge(j(P({blockhash:z(),previousBlockhash:z(),parentSlot:O(),rewards:ne(W(Hn)),blockTime:j(O()),blockHeight:j(O())}))),Wv=ge(j(P({blockhash:z(),previousBlockhash:z(),parentSlot:O(),transactions:W(P({transaction:Bu,meta:j(ea)})),rewards:ne(W(Hn)),blockTime:j(O())}))),Yd=ge(j(P({blockhash:z(),previousBlockhash:z(),parentSlot:O(),signatures:W(z()),blockTime:j(O())}))),lu=ge(j(P({slot:O(),meta:j(ea),blockTime:ne(j(O())),transaction:Bu,version:ne(Ri)}))),zo=ge(j(P({slot:O(),transaction:bh,meta:j(Lu),blockTime:ne(j(O())),version:ne(Ri)}))),qv=Ze(P({blockhash:z(),lastValidBlockHeight:O()})),jv=Ze(ur()),Kv=P({slot:O(),numTransactions:O(),numSlots:O(),samplePeriodSecs:O()}),Hv=ge(W(Kv)),Gv=Ze(j(P({feeCalculator:P({lamportsPerSignature:O()})}))),Zv=ge(z()),Yv=ge(z()),Xv=P({err:Kn,logs:W(z()),signature:z()}),Jv=P({result:Qo(Xv),subscription:O()}),Qv={"solana-client":"js/1.0.0-maintenance"},Yo=class{constructor(e,t){this._commitment=void 0,this._confirmTransactionInitialTimeout=void 0,this._rpcEndpoint=void 0,this._rpcWsEndpoint=void 0,this._rpcClient=void 0,this._rpcRequest=void 0,this._rpcBatchRequest=void 0,this._rpcWebSocket=void 0,this._rpcWebSocketConnected=!1,this._rpcWebSocketHeartbeat=null,this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketGeneration=0,this._disableBlockhashCaching=!1,this._pollingBlockhash=!1,this._blockhashInfo={latestBlockhash:null,lastFetch:0,transactionSignatures:[],simulatedSignatures:[]},this._nextClientSubscriptionId=0,this._subscriptionDisposeFunctionsByClientSubscriptionId={},this._subscriptionHashByClientSubscriptionId={},this._subscriptionStateChangeCallbacksByHash={},this._subscriptionCallbacksByServerSubscriptionId={},this._subscriptionsByHash={},this._subscriptionsAutoDisposedByRpc=new Set,this.getBlockHeight=(()=>{let p={};return async m=>{let{commitment:b,config:A}=Be(m),S=this._buildArgs([],b,void 0,A),T=jd(S);return p[T]=p[T]??(async()=>{try{let I=await this._rpcRequest("getBlockHeight",S),x=$(I,ge(O()));if("error"in x)throw new Q(x.error,"failed to get block height information");return x.result}finally{delete p[T]}})(),await p[T]}})();let n,i,s,o,c,u;t&&typeof t=="string"?this._commitment=t:t&&(this._commitment=t.commitment,this._confirmTransactionInitialTimeout=t.confirmTransactionInitialTimeout,n=t.wsEndpoint,i=t.httpHeaders,s=t.fetch,o=t.fetchMiddleware,c=t.disableRetryOnRateLimit,u=t.httpAgent),this._rpcEndpoint=D1(e),this._rpcWsEndpoint=n||M1(e),this._rpcClient=Q1(e,i,s,o,c,u),this._rpcRequest=ev(this._rpcClient),this._rpcBatchRequest=tv(this._rpcClient),this._rpcWebSocket=new wu(this._rpcWsEndpoint,{autoconnect:!1,max_reconnects:1/0}),this._rpcWebSocket.on("open",this._wsOnOpen.bind(this)),this._rpcWebSocket.on("error",this._wsOnError.bind(this)),this._rpcWebSocket.on("close",this._wsOnClose.bind(this)),this._rpcWebSocket.on("accountNotification",this._wsOnAccountNotification.bind(this)),this._rpcWebSocket.on("programNotification",this._wsOnProgramAccountNotification.bind(this)),this._rpcWebSocket.on("slotNotification",this._wsOnSlotNotification.bind(this)),this._rpcWebSocket.on("slotsUpdatesNotification",this._wsOnSlotUpdatesNotification.bind(this)),this._rpcWebSocket.on("signatureNotification",this._wsOnSignatureNotification.bind(this)),this._rpcWebSocket.on("rootNotification",this._wsOnRootNotification.bind(this)),this._rpcWebSocket.on("logsNotification",this._wsOnLogsNotification.bind(this))}get commitment(){return this._commitment}get rpcEndpoint(){return this._rpcEndpoint}async getBalanceAndContext(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgs([e.toBase58()],n,void 0,i),o=await this._rpcRequest("getBalance",s),c=$(o,Ze(O()));if("error"in c)throw new Q(c.error,`failed to get balance for ${e.toBase58()}`);return c.result}async getBalance(e,t){return await this.getBalanceAndContext(e,t).then(n=>n.value).catch(n=>{throw new Error("failed to get balance of account "+e.toBase58()+": "+n)})}async getBlockTime(e){let t=await this._rpcRequest("getBlockTime",[e]),n=$(t,ge(j(O())));if("error"in n)throw new Q(n.error,`failed to get block time for slot ${e}`);return n.result}async getMinimumLedgerSlot(){let e=await this._rpcRequest("minimumLedgerSlot",[]),t=$(e,ge(O()));if("error"in t)throw new Q(t.error,"failed to get minimum ledger slot");return t.result}async getFirstAvailableBlock(){let e=await this._rpcRequest("getFirstAvailableBlock",[]),t=$(e,cv);if("error"in t)throw new Q(t.error,"failed to get first available block");return t.result}async getSupply(e){let t={};typeof e=="string"?t={commitment:e}:e?t={...e,commitment:e&&e.commitment||this.commitment}:t={commitment:this.commitment};let n=await this._rpcRequest("getSupply",[t]),i=$(n,uv);if("error"in i)throw new Q(i.error,"failed to get supply");return i.result}async getTokenSupply(e,t){let n=this._buildArgs([e.toBase58()],t),i=await this._rpcRequest("getTokenSupply",n),s=$(i,Ze(vu));if("error"in s)throw new Q(s.error,"failed to get token supply");return s.result}async getTokenAccountBalance(e,t){let n=this._buildArgs([e.toBase58()],t),i=await this._rpcRequest("getTokenAccountBalance",n),s=$(i,Ze(vu));if("error"in s)throw new Q(s.error,"failed to get token account balance");return s.result}async getTokenAccountsByOwner(e,t,n){let{commitment:i,config:s}=Be(n),o=[e.toBase58()];"mint"in t?o.push({mint:t.mint.toBase58()}):o.push({programId:t.programId.toBase58()});let c=this._buildArgs(o,i,"base64",s),u=await this._rpcRequest("getTokenAccountsByOwner",c),p=$(u,lv);if("error"in p)throw new Q(p.error,`failed to get token accounts owned by account ${e.toBase58()}`);return p.result}async getParsedTokenAccountsByOwner(e,t,n){let i=[e.toBase58()];"mint"in t?i.push({mint:t.mint.toBase58()}):i.push({programId:t.programId.toBase58()});let s=this._buildArgs(i,n,"jsonParsed"),o=await this._rpcRequest("getTokenAccountsByOwner",s),c=$(o,dv);if("error"in c)throw new Q(c.error,`failed to get token accounts owned by account ${e.toBase58()}`);return c.result}async getLargestAccounts(e){let t={...e,commitment:e&&e.commitment||this.commitment},n=t.filter||t.commitment?[t]:[],i=await this._rpcRequest("getLargestAccounts",n),s=$(i,hv);if("error"in s)throw new Q(s.error,"failed to get largest accounts");return s.result}async getTokenLargestAccounts(e,t){let n=this._buildArgs([e.toBase58()],t),i=await this._rpcRequest("getTokenLargestAccounts",n),s=$(i,fv);if("error"in s)throw new Q(s.error,"failed to get token largest accounts");return s.result}async getAccountInfoAndContext(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgs([e.toBase58()],n,"base64",i),o=await this._rpcRequest("getAccountInfo",s),c=$(o,Ze(j(cs)));if("error"in c)throw new Q(c.error,`failed to get info about account ${e.toBase58()}`);return c.result}async getParsedAccountInfo(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgs([e.toBase58()],n,"jsonParsed",i),o=await this._rpcRequest("getAccountInfo",s),c=$(o,Ze(j(Ru)));if("error"in c)throw new Q(c.error,`failed to get info about account ${e.toBase58()}`);return c.result}async getAccountInfo(e,t){try{return(await this.getAccountInfoAndContext(e,t)).value}catch(n){throw new Error("failed to get info about account "+e.toBase58()+": "+n)}}async getMultipleParsedAccounts(e,t){let{commitment:n,config:i}=Be(t),s=e.map(p=>p.toBase58()),o=this._buildArgs([s],n,"jsonParsed",i),c=await this._rpcRequest("getMultipleAccounts",o),u=$(c,Ze(W(j(Ru))));if("error"in u)throw new Q(u.error,`failed to get info for accounts ${s}`);return u.result}async getMultipleAccountsInfoAndContext(e,t){let{commitment:n,config:i}=Be(t),s=e.map(p=>p.toBase58()),o=this._buildArgs([s],n,"base64",i),c=await this._rpcRequest("getMultipleAccounts",o),u=$(c,Ze(W(j(cs))));if("error"in u)throw new Q(u.error,`failed to get info for accounts ${s}`);return u.result}async getMultipleAccountsInfo(e,t){return(await this.getMultipleAccountsInfoAndContext(e,t)).value}async getStakeActivation(e,t,n){let{commitment:i,config:s}=Be(t),o=this._buildArgs([e.toBase58()],i,void 0,{...s,epoch:n??s?.epoch}),c=await this._rpcRequest("getStakeActivation",o),u=$(c,ge(yv));if("error"in u)throw new Q(u.error,`failed to get Stake Activation ${e.toBase58()}`);return u.result}async getProgramAccounts(e,t){let{commitment:n,config:i}=Be(t),{encoding:s,...o}=i||{},c=this._buildArgs([e.toBase58()],n,s||"base64",{...o,...o.filters?{filters:Hd(o.filters)}:null}),u=await this._rpcRequest("getProgramAccounts",c),p=W(pv),m=o.withContext===!0?$(u,Ze(p)):$(u,ge(p));if("error"in m)throw new Q(m.error,`failed to get accounts owned by program ${e.toBase58()}`);return m.result}async getParsedProgramAccounts(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgs([e.toBase58()],n,"jsonParsed",i),o=await this._rpcRequest("getProgramAccounts",s),c=$(o,ge(W(gv)));if("error"in c)throw new Q(c.error,`failed to get accounts owned by program ${e.toBase58()}`);return c.result}async confirmTransaction(e,t){let n;if(typeof e=="string")n=e;else{let s=e;if(s.abortSignal?.aborted)return Promise.reject(s.abortSignal.reason);n=s.signature}let i;try{i=vt.default.decode(n)}catch{throw new Error("signature must be base58 encoded: "+n)}return xe(i.length===64,"signature has invalid length"),typeof e=="string"?await this.confirmTransactionUsingLegacyTimeoutStrategy({commitment:t||this.commitment,signature:n}):"lastValidBlockHeight"in e?await this.confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:t||this.commitment,strategy:e}):await this.confirmTransactionUsingDurableNonceStrategy({commitment:t||this.commitment,strategy:e})}getCancellationPromise(e){return new Promise((t,n)=>{e!=null&&(e.aborted?n(e.reason):e.addEventListener("abort",()=>{n(e.reason)}))})}getTransactionConfirmationPromise({commitment:e,signature:t}){let n,i,s=!1,o=new Promise((u,p)=>{try{n=this.onSignature(t,(b,A)=>{n=void 0;let S={context:A,value:b};u({__type:cn.PROCESSED,response:S})},e);let m=new Promise(b=>{n==null?b():i=this._onSubscriptionStateChange(n,A=>{A==="subscribed"&&b()})});(async()=>{if(await m,s)return;let b=await this.getSignatureStatus(t);if(s||b==null)return;let{context:A,value:S}=b;if(S!=null)if(S?.err)p(S.err);else{switch(e){case"confirmed":case"single":case"singleGossip":{if(S.confirmationStatus==="processed")return;break}case"finalized":case"max":case"root":{if(S.confirmationStatus==="processed"||S.confirmationStatus==="confirmed")return;break}case"processed":case"recent":}s=!0,u({__type:cn.PROCESSED,response:{context:A,value:S}})}})()}catch(m){p(m)}});return{abortConfirmation:()=>{i&&(i(),i=void 0),n!=null&&(this.removeSignatureListener(n),n=void 0)},confirmationPromise:o}}async confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:e,strategy:{abortSignal:t,lastValidBlockHeight:n,signature:i}}){let s=!1,o=new Promise(b=>{let A=async()=>{try{return await this.getBlockHeight(e)}catch{return-1}};(async()=>{let S=await A();if(!s){for(;S<=n;)if(await Wn(1e3),s||(S=await A(),s))return;b({__type:cn.BLOCKHEIGHT_EXCEEDED})}})()}),{abortConfirmation:c,confirmationPromise:u}=this.getTransactionConfirmationPromise({commitment:e,signature:i}),p=this.getCancellationPromise(t),m;try{let b=await Promise.race([p,u,o]);if(b.__type===cn.PROCESSED)m=b.response;else throw new Wo(i)}finally{s=!0,c()}return m}async confirmTransactionUsingDurableNonceStrategy({commitment:e,strategy:{abortSignal:t,minContextSlot:n,nonceAccountPubkey:i,nonceValue:s,signature:o}}){let c=!1,u=new Promise(S=>{let T=s,I=null,x=async()=>{try{let{context:B,value:U}=await this.getNonceAndContext(i,{commitment:e,minContextSlot:n});return I=B.slot,U?.nonce}catch{return T}};(async()=>{if(T=await x(),!c)for(;;){if(s!==T){S({__type:cn.NONCE_INVALID,slotInWhichNonceDidAdvance:I});return}if(await Wn(2e3),c||(T=await x(),c))return}})()}),{abortConfirmation:p,confirmationPromise:m}=this.getTransactionConfirmationPromise({commitment:e,signature:o}),b=this.getCancellationPromise(t),A;try{let S=await Promise.race([b,m,u]);if(S.__type===cn.PROCESSED)A=S.response;else{let T;for(;;){let I=await this.getSignatureStatus(o);if(I==null)break;if(I.context.slot<(S.slotInWhichNonceDidAdvance??n)){await Wn(400);continue}T=I;break}if(T?.value){let I=e||"finalized",{confirmationStatus:x}=T.value;switch(I){case"processed":case"recent":if(x!=="processed"&&x!=="confirmed"&&x!=="finalized")throw new qn(o);break;case"confirmed":case"single":case"singleGossip":if(x!=="confirmed"&&x!=="finalized")throw new qn(o);break;case"finalized":case"max":case"root":if(x!=="finalized")throw new qn(o);break;default:}A={context:T.context,value:{err:T.value.err}}}else throw new qn(o)}}finally{c=!0,p()}return A}async confirmTransactionUsingLegacyTimeoutStrategy({commitment:e,signature:t}){let n,i=new Promise(u=>{let p=this._confirmTransactionInitialTimeout||6e4;switch(e){case"processed":case"recent":case"single":case"confirmed":case"singleGossip":{p=this._confirmTransactionInitialTimeout||3e4;break}}n=setTimeout(()=>u({__type:cn.TIMED_OUT,timeoutMs:p}),p)}),{abortConfirmation:s,confirmationPromise:o}=this.getTransactionConfirmationPromise({commitment:e,signature:t}),c;try{let u=await Promise.race([o,i]);if(u.__type===cn.PROCESSED)c=u.response;else throw new qo(t,u.timeoutMs/1e3)}finally{clearTimeout(n),s()}return c}async getClusterNodes(){let e=await this._rpcRequest("getClusterNodes",[]),t=$(e,ge(W(kv)));if("error"in t)throw new Q(t.error,"failed to get cluster nodes");return t.result}async getVoteAccounts(e){let t=this._buildArgs([],e),n=await this._rpcRequest("getVoteAccounts",t),i=$(n,Tv);if("error"in i)throw new Q(i.error,"failed to get vote accounts");return i.result}async getSlot(e){let{commitment:t,config:n}=Be(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getSlot",i),o=$(s,ge(O()));if("error"in o)throw new Q(o.error,"failed to get slot");return o.result}async getSlotLeader(e){let{commitment:t,config:n}=Be(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getSlotLeader",i),o=$(s,ge(z()));if("error"in o)throw new Q(o.error,"failed to get slot leader");return o.result}async getSlotLeaders(e,t){let n=[e,t],i=await this._rpcRequest("getSlotLeaders",n),s=$(i,ge(W(qe)));if("error"in s)throw new Q(s.error,"failed to get slot leaders");return s.result}async getSignatureStatus(e,t){let{context:n,value:i}=await this.getSignatureStatuses([e],t);xe(i.length===1);let s=i[0];return{context:n,value:s}}async getSignatureStatuses(e,t){let n=[e];t&&n.push(t);let i=await this._rpcRequest("getSignatureStatuses",n),s=$(i,Lv);if("error"in s)throw new Q(s.error,"failed to get signature status");return s.result}async getTransactionCount(e){let{commitment:t,config:n}=Be(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getTransactionCount",i),o=$(s,ge(O()));if("error"in o)throw new Q(o.error,"failed to get transaction count");return o.result}async getTotalSupply(e){return(await this.getSupply({commitment:e,excludeNonCirculatingAccountsList:!0})).value.total}async getInflationGovernor(e){let t=this._buildArgs([],e),n=await this._rpcRequest("getInflationGovernor",t),i=$(n,rv);if("error"in i)throw new Q(i.error,"failed to get inflation");return i.result}async getInflationReward(e,t,n){let{commitment:i,config:s}=Be(n),o=this._buildArgs([e.map(p=>p.toBase58())],i,void 0,{...s,epoch:t??s?.epoch}),c=await this._rpcRequest("getInflationReward",o),u=$(c,V1);if("error"in u)throw new Q(u.error,"failed to get inflation reward");return u.result}async getInflationRate(){let e=await this._rpcRequest("getInflationRate",[]),t=$(e,nv);if("error"in t)throw new Q(t.error,"failed to get inflation rate");return t.result}async getEpochInfo(e){let{commitment:t,config:n}=Be(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getEpochInfo",i),o=$(s,sv);if("error"in o)throw new Q(o.error,"failed to get epoch info");return o.result}async getEpochSchedule(){let e=await this._rpcRequest("getEpochSchedule",[]),t=$(e,ov);if("error"in t)throw new Q(t.error,"failed to get epoch schedule");let n=t.result;return new bu(n.slotsPerEpoch,n.leaderScheduleSlotOffset,n.warmup,n.firstNormalEpoch,n.firstNormalSlot)}async getLeaderSchedule(){let e=await this._rpcRequest("getLeaderSchedule",[]),t=$(e,av);if("error"in t)throw new Q(t.error,"failed to get leader schedule");return t.result}async getMinimumBalanceForRentExemption(e,t){let n=this._buildArgs([e],t),i=await this._rpcRequest("getMinimumBalanceForRentExemption",n),s=$(i,Cv);return"error"in s?(console.warn("Unable to fetch minimum balance for rent exemption"),0):s.result}async getRecentBlockhashAndContext(e){let{context:t,value:{blockhash:n}}=await this.getLatestBlockhashAndContext(e);return{context:t,value:{blockhash:n,feeCalculator:{get lamportsPerSignature(){throw new Error("The capability to fetch `lamportsPerSignature` using the `getRecentBlockhash` API is no longer offered by the network. Use the `getFeeForMessage` API to obtain the fee for a given message.")},toJSON(){return{}}}}}}async getRecentPerformanceSamples(e){let t=await this._rpcRequest("getRecentPerformanceSamples",e?[e]:[]),n=$(t,Hv);if("error"in n)throw new Q(n.error,"failed to get recent performance samples");return n.result}async getFeeCalculatorForBlockhash(e,t){let n=this._buildArgs([e],t),i=await this._rpcRequest("getFeeCalculatorForBlockhash",n),s=$(i,Gv);if("error"in s)throw new Q(s.error,"failed to get fee calculator");let{context:o,value:c}=s.result;return{context:o,value:c!==null?c.feeCalculator:null}}async getFeeForMessage(e,t){let n=_e(e.serialize()).toString("base64"),i=this._buildArgs([n],t),s=await this._rpcRequest("getFeeForMessage",i),o=$(s,Ze(j(O())));if("error"in o)throw new Q(o.error,"failed to get fee for message");if(o.result===null)throw new Error("invalid blockhash");return o.result}async getRecentPrioritizationFees(e){let t=e?.lockedWritableAccounts?.map(o=>o.toBase58()),n=t?.length?[t]:[],i=await this._rpcRequest("getRecentPrioritizationFees",n),s=$(i,iv);if("error"in s)throw new Q(s.error,"failed to get recent prioritization fees");return s.result}async getRecentBlockhash(e){try{return(await this.getRecentBlockhashAndContext(e)).value}catch(t){throw new Error("failed to get recent blockhash: "+t)}}async getLatestBlockhash(e){try{return(await this.getLatestBlockhashAndContext(e)).value}catch(t){throw new Error("failed to get recent blockhash: "+t)}}async getLatestBlockhashAndContext(e){let{commitment:t,config:n}=Be(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getLatestBlockhash",i),o=$(s,qv);if("error"in o)throw new Q(o.error,"failed to get latest blockhash");return o.result}async isBlockhashValid(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgs([e],n,void 0,i),o=await this._rpcRequest("isBlockhashValid",s),c=$(o,jv);if("error"in c)throw new Q(c.error,"failed to determine if the blockhash `"+e+"`is valid");return c.result}async getVersion(){let e=await this._rpcRequest("getVersion",[]),t=$(e,ge(Z1));if("error"in t)throw new Q(t.error,"failed to get version");return t.result}async getGenesisHash(){let e=await this._rpcRequest("getGenesisHash",[]),t=$(e,ge(z()));if("error"in t)throw new Q(t.error,"failed to get genesis hash");return t.result}async getBlock(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgsAtLeastConfirmed([e],n,void 0,i),o=await this._rpcRequest("getBlock",s);try{switch(i?.transactionDetails){case"accounts":{let c=$(o,zv);if("error"in c)throw c.error;return c.result}case"none":{let c=$(o,Dv);if("error"in c)throw c.error;return c.result}default:{let c=$(o,Uv);if("error"in c)throw c.error;let{result:u}=c;return u?{...u,transactions:u.transactions.map(({transaction:p,meta:m,version:b})=>({meta:m,transaction:{...p,message:fu(b,p.message)},version:b}))}:null}}}catch(c){throw new Q(c,"failed to get confirmed block")}}async getParsedBlock(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgsAtLeastConfirmed([e],n,"jsonParsed",i),o=await this._rpcRequest("getBlock",s);try{switch(i?.transactionDetails){case"accounts":{let c=$(o,Vv);if("error"in c)throw c.error;return c.result}case"none":{let c=$(o,$v);if("error"in c)throw c.error;return c.result}default:{let c=$(o,Fv);if("error"in c)throw c.error;return c.result}}}catch(c){throw new Q(c,"failed to get block")}}async getBlockProduction(e){let t,n;if(typeof e=="string")n=e;else if(e){let{commitment:c,...u}=e;n=c,t=u}let i=this._buildArgs([],n,"base64",t),s=await this._rpcRequest("getBlockProduction",i),o=$(s,J1);if("error"in o)throw new Q(o.error,"failed to get block production information");return o.result}async getTransaction(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgsAtLeastConfirmed([e],n,void 0,i),o=await this._rpcRequest("getTransaction",s),c=$(o,lu);if("error"in c)throw new Q(c.error,"failed to get transaction");let u=c.result;return u&&{...u,transaction:{...u.transaction,message:fu(u.version,u.transaction.message)}}}async getParsedTransaction(e,t){let{commitment:n,config:i}=Be(t),s=this._buildArgsAtLeastConfirmed([e],n,"jsonParsed",i),o=await this._rpcRequest("getTransaction",s),c=$(o,zo);if("error"in c)throw new Q(c.error,"failed to get transaction");return c.result}async getParsedTransactions(e,t){let{commitment:n,config:i}=Be(t),s=e.map(u=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([u],n,"jsonParsed",i)}));return(await this._rpcBatchRequest(s)).map(u=>{let p=$(u,zo);if("error"in p)throw new Q(p.error,"failed to get transactions");return p.result})}async getTransactions(e,t){let{commitment:n,config:i}=Be(t),s=e.map(u=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([u],n,void 0,i)}));return(await this._rpcBatchRequest(s)).map(u=>{let p=$(u,lu);if("error"in p)throw new Q(p.error,"failed to get transactions");let m=p.result;return m&&{...m,transaction:{...m.transaction,message:fu(m.version,m.transaction.message)}}})}async getConfirmedBlock(e,t){let n=this._buildArgsAtLeastConfirmed([e],t),i=await this._rpcRequest("getBlock",n),s=$(i,Wv);if("error"in s)throw new Q(s.error,"failed to get confirmed block");let o=s.result;if(!o)throw new Error("Confirmed block "+e+" not found");let c={...o,transactions:o.transactions.map(({transaction:u,meta:p})=>{let m=new ln(u.message);return{meta:p,transaction:{...u,message:m}}})};return{...c,transactions:c.transactions.map(({transaction:u,meta:p})=>({meta:p,transaction:Re.populate(u.message,u.signatures)}))}}async getBlocks(e,t,n){let i=this._buildArgsAtLeastConfirmed(t!==void 0?[e,t]:[e],n),s=await this._rpcRequest("getBlocks",i),o=$(s,ge(W(O())));if("error"in o)throw new Q(o.error,"failed to get blocks");return o.result}async getBlockSignatures(e,t){let n=this._buildArgsAtLeastConfirmed([e],t,void 0,{transactionDetails:"signatures",rewards:!1}),i=await this._rpcRequest("getBlock",n),s=$(i,Yd);if("error"in s)throw new Q(s.error,"failed to get block");let o=s.result;if(!o)throw new Error("Block "+e+" not found");return o}async getConfirmedBlockSignatures(e,t){let n=this._buildArgsAtLeastConfirmed([e],t,void 0,{transactionDetails:"signatures",rewards:!1}),i=await this._rpcRequest("getBlock",n),s=$(i,Yd);if("error"in s)throw new Q(s.error,"failed to get confirmed block");let o=s.result;if(!o)throw new Error("Confirmed block "+e+" not found");return o}async getConfirmedTransaction(e,t){let n=this._buildArgsAtLeastConfirmed([e],t),i=await this._rpcRequest("getTransaction",n),s=$(i,lu);if("error"in s)throw new Q(s.error,"failed to get transaction");let o=s.result;if(!o)return o;let c=new ln(o.transaction.message),u=o.transaction.signatures;return{...o,transaction:Re.populate(c,u)}}async getParsedConfirmedTransaction(e,t){let n=this._buildArgsAtLeastConfirmed([e],t,"jsonParsed"),i=await this._rpcRequest("getTransaction",n),s=$(i,zo);if("error"in s)throw new Q(s.error,"failed to get confirmed transaction");return s.result}async getParsedConfirmedTransactions(e,t){let n=e.map(o=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([o],t,"jsonParsed")}));return(await this._rpcBatchRequest(n)).map(o=>{let c=$(o,zo);if("error"in c)throw new Q(c.error,"failed to get confirmed transactions");return c.result})}async getConfirmedSignaturesForAddress(e,t,n){let i={},s=await this.getFirstAvailableBlock();for(;!("until"in i)&&(t--,!(t<=0||t<s));)try{let u=await this.getConfirmedBlockSignatures(t,"finalized");u.signatures.length>0&&(i.until=u.signatures[u.signatures.length-1].toString())}catch(u){if(u instanceof Error&&u.message.includes("skipped"))continue;throw u}let o=await this.getSlot("finalized");for(;!("before"in i)&&(n++,!(n>o));)try{let u=await this.getConfirmedBlockSignatures(n);u.signatures.length>0&&(i.before=u.signatures[u.signatures.length-1].toString())}catch(u){if(u instanceof Error&&u.message.includes("skipped"))continue;throw u}return(await this.getConfirmedSignaturesForAddress2(e,i)).map(u=>u.signature)}async getConfirmedSignaturesForAddress2(e,t,n){let i=this._buildArgsAtLeastConfirmed([e.toBase58()],n,void 0,t),s=await this._rpcRequest("getConfirmedSignaturesForAddress2",i),o=$(s,_v);if("error"in o)throw new Q(o.error,"failed to get confirmed signatures for address");return o.result}async getSignaturesForAddress(e,t,n){let i=this._buildArgsAtLeastConfirmed([e.toBase58()],n,void 0,t),s=await this._rpcRequest("getSignaturesForAddress",i),o=$(s,bv);if("error"in o)throw new Q(o.error,"failed to get signatures for address");return o.result}async getAddressLookupTable(e,t){let{context:n,value:i}=await this.getAccountInfoAndContext(e,t),s=null;return i!==null&&(s=new Go({key:e,state:Go.deserialize(i.data)})),{context:n,value:s}}async getNonceAndContext(e,t){let{context:n,value:i}=await this.getAccountInfoAndContext(e,t),s=null;return i!==null&&(s=yu.fromAccountData(i.data)),{context:n,value:s}}async getNonce(e,t){return await this.getNonceAndContext(e,t).then(n=>n.value).catch(n=>{throw new Error("failed to get nonce for account "+e.toBase58()+": "+n)})}async requestAirdrop(e,t){let n=await this._rpcRequest("requestAirdrop",[e.toBase58(),t]),i=$(n,Zv);if("error"in i)throw new Q(i.error,`airdrop to ${e.toBase58()} failed`);return i.result}async _blockhashWithExpiryBlockHeight(e){if(!e){for(;this._pollingBlockhash;)await Wn(100);let n=Date.now()-this._blockhashInfo.lastFetch>=U1;if(this._blockhashInfo.latestBlockhash!==null&&!n)return this._blockhashInfo.latestBlockhash}return await this._pollNewBlockhash()}async _pollNewBlockhash(){this._pollingBlockhash=!0;try{let e=Date.now(),t=this._blockhashInfo.latestBlockhash,n=t?t.blockhash:null;for(let i=0;i<50;i++){let s=await this.getLatestBlockhash("finalized");if(n!==s.blockhash)return this._blockhashInfo={latestBlockhash:s,lastFetch:Date.now(),transactionSignatures:[],simulatedSignatures:[]},s;await Wn(uh/2)}throw new Error(`Unable to obtain a new blockhash after ${Date.now()-e}ms`)}finally{this._pollingBlockhash=!1}}async getStakeMinimumDelegation(e){let{commitment:t,config:n}=Be(e),i=this._buildArgs([],t,"base64",n),s=await this._rpcRequest("getStakeMinimumDelegation",i),o=$(s,Ze(O()));if("error"in o)throw new Q(o.error,"failed to get stake minimum delegation");return o.result}async simulateTransaction(e,t,n){if("message"in e){let I=e.serialize(),x=ae.Buffer.from(I).toString("base64");if(Array.isArray(t)||n!==void 0)throw new Error("Invalid arguments");let B=t||{};B.encoding="base64","commitment"in B||(B.commitment=this.commitment),t&&typeof t=="object"&&"innerInstructions"in t&&(B.innerInstructions=t.innerInstructions);let U=[x,B],L=await this._rpcRequest("simulateTransaction",U),F=$(L,Gd);if("error"in F)throw new Error("failed to simulate transaction: "+F.error.message);return F.result}let i;if(e instanceof Re){let T=e;i=new Re,i.feePayer=T.feePayer,i.instructions=e.instructions,i.nonceInfo=T.nonceInfo,i.signatures=T.signatures}else i=Re.populate(e),i._message=i._json=void 0;if(t!==void 0&&!Array.isArray(t))throw new Error("Invalid arguments");let s=t;if(i.nonceInfo&&s)i.sign(...s);else{let T=this._disableBlockhashCaching;for(;;){let I=await this._blockhashWithExpiryBlockHeight(T);if(i.lastValidBlockHeight=I.lastValidBlockHeight,i.recentBlockhash=I.blockhash,!s)break;if(i.sign(...s),!i.signature)throw new Error("!signature");let x=i.signature.toString("base64");if(!this._blockhashInfo.simulatedSignatures.includes(x)&&!this._blockhashInfo.transactionSignatures.includes(x)){this._blockhashInfo.simulatedSignatures.push(x);break}else T=!0}}let o=i._compile(),c=o.serialize(),p=i._serialize(c).toString("base64"),m={encoding:"base64",commitment:this.commitment};if(n){let T=(Array.isArray(n)?n:o.nonProgramIds()).map(I=>I.toBase58());m.accounts={encoding:"base64",addresses:T}}s&&(m.sigVerify=!0),t&&typeof t=="object"&&"innerInstructions"in t&&(m.innerInstructions=t.innerInstructions);let b=[p,m],A=await this._rpcRequest("simulateTransaction",b),S=$(A,Gd);if("error"in S){let T;if("data"in S.error&&(T=S.error.data.logs,T&&Array.isArray(T))){let I=`
12
12
  `,x=I+T.join(I);console.error(S.error.message,x)}throw new as({action:"simulate",signature:"",transactionMessage:S.error.message,logs:T})}return S.result}async sendTransaction(e,t,n){if("version"in e){if(t&&Array.isArray(t))throw new Error("Invalid arguments");let o=e.serialize();return await this.sendRawTransaction(o,t)}if(t===void 0||!Array.isArray(t))throw new Error("Invalid arguments");let i=t;if(e.nonceInfo)e.sign(...i);else{let o=this._disableBlockhashCaching;for(;;){let c=await this._blockhashWithExpiryBlockHeight(o);if(e.lastValidBlockHeight=c.lastValidBlockHeight,e.recentBlockhash=c.blockhash,e.sign(...i),!e.signature)throw new Error("!signature");let u=e.signature.toString("base64");if(this._blockhashInfo.transactionSignatures.includes(u))o=!0;else{this._blockhashInfo.transactionSignatures.push(u);break}}}let s=e.serialize();return await this.sendRawTransaction(s,n)}async sendRawTransaction(e,t){let n=_e(e).toString("base64");return await this.sendEncodedTransaction(n,t)}async sendEncodedTransaction(e,t){let n={encoding:"base64"},i=t&&t.skipPreflight,s=i===!0?"processed":t&&t.preflightCommitment||this.commitment;t&&t.maxRetries!=null&&(n.maxRetries=t.maxRetries),t&&t.minContextSlot!=null&&(n.minContextSlot=t.minContextSlot),i&&(n.skipPreflight=i),s&&(n.preflightCommitment=s);let o=[e,n],c=await this._rpcRequest("sendTransaction",o),u=$(c,Yv);if("error"in u){let p;throw"data"in u.error&&(p=u.error.data.logs),new as({action:i?"send":"simulate",signature:"",transactionMessage:u.error.message,logs:p})}return u.result}_wsOnOpen(){this._rpcWebSocketConnected=!0,this._rpcWebSocketHeartbeat=setInterval(()=>{(async()=>{try{await this._rpcWebSocket.notify("ping")}catch{}})()},5e3),this._updateSubscriptions()}_wsOnError(e){this._rpcWebSocketConnected=!1,console.error("ws error:",e.message)}_wsOnClose(e){if(this._rpcWebSocketConnected=!1,this._rpcWebSocketGeneration=(this._rpcWebSocketGeneration+1)%Number.MAX_SAFE_INTEGER,this._rpcWebSocketIdleTimeout&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null),this._rpcWebSocketHeartbeat&&(clearInterval(this._rpcWebSocketHeartbeat),this._rpcWebSocketHeartbeat=null),e===1e3){this._updateSubscriptions();return}this._subscriptionCallbacksByServerSubscriptionId={},Object.entries(this._subscriptionsByHash).forEach(([t,n])=>{this._setSubscription(t,{...n,state:"pending"})})}_setSubscription(e,t){let n=this._subscriptionsByHash[e]?.state;if(this._subscriptionsByHash[e]=t,n!==t.state){let i=this._subscriptionStateChangeCallbacksByHash[e];i&&i.forEach(s=>{try{s(t.state)}catch{}})}}_onSubscriptionStateChange(e,t){let n=this._subscriptionHashByClientSubscriptionId[e];if(n==null)return()=>{};let i=this._subscriptionStateChangeCallbacksByHash[n]||=new Set;return i.add(t),()=>{i.delete(t),i.size===0&&delete this._subscriptionStateChangeCallbacksByHash[n]}}async _updateSubscriptions(){if(Object.keys(this._subscriptionsByHash).length===0){this._rpcWebSocketConnected&&(this._rpcWebSocketConnected=!1,this._rpcWebSocketIdleTimeout=setTimeout(()=>{this._rpcWebSocketIdleTimeout=null;try{this._rpcWebSocket.close()}catch(n){n instanceof Error&&console.log(`Error when closing socket connection: ${n.message}`)}},500));return}if(this._rpcWebSocketIdleTimeout!==null&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketConnected=!0),!this._rpcWebSocketConnected){this._rpcWebSocket.connect();return}let e=this._rpcWebSocketGeneration,t=()=>e===this._rpcWebSocketGeneration;await Promise.all(Object.keys(this._subscriptionsByHash).map(async n=>{let i=this._subscriptionsByHash[n];if(i!==void 0)switch(i.state){case"pending":case"unsubscribed":if(i.callbacks.size===0){delete this._subscriptionsByHash[n],i.state==="unsubscribed"&&delete this._subscriptionCallbacksByServerSubscriptionId[i.serverSubscriptionId],await this._updateSubscriptions();return}await(async()=>{let{args:s,method:o}=i;try{this._setSubscription(n,{...i,state:"subscribing"});let c=await this._rpcWebSocket.call(o,s);this._setSubscription(n,{...i,serverSubscriptionId:c,state:"subscribed"}),this._subscriptionCallbacksByServerSubscriptionId[c]=i.callbacks,await this._updateSubscriptions()}catch(c){if(console.error(`Received ${c instanceof Error?"":"JSON-RPC "}error calling \`${o}\``,{args:s,error:c}),!t())return;this._setSubscription(n,{...i,state:"pending"}),await this._updateSubscriptions()}})();break;case"subscribed":i.callbacks.size===0&&await(async()=>{let{serverSubscriptionId:s,unsubscribeMethod:o}=i;if(this._subscriptionsAutoDisposedByRpc.has(s))this._subscriptionsAutoDisposedByRpc.delete(s);else{this._setSubscription(n,{...i,state:"unsubscribing"}),this._setSubscription(n,{...i,state:"unsubscribing"});try{await this._rpcWebSocket.call(o,[s])}catch(c){if(c instanceof Error&&console.error(`${o} error:`,c.message),!t())return;this._setSubscription(n,{...i,state:"subscribed"}),await this._updateSubscriptions();return}}this._setSubscription(n,{...i,state:"unsubscribed"}),await this._updateSubscriptions()})();break}}))}_handleServerNotification(e,t){let n=this._subscriptionCallbacksByServerSubscriptionId[e];n!==void 0&&n.forEach(i=>{try{i(...t)}catch(s){console.error(s)}})}_wsOnAccountNotification(e){let{result:t,subscription:n}=$(e,wv);this._handleServerNotification(n,[t.value,t.context])}_makeSubscription(e,t){let n=this._nextClientSubscriptionId++,i=jd([e.method,t]),s=this._subscriptionsByHash[i];return s===void 0?this._subscriptionsByHash[i]={...e,args:t,callbacks:new Set([e.callback]),state:"pending"}:s.callbacks.add(e.callback),this._subscriptionHashByClientSubscriptionId[n]=i,this._subscriptionDisposeFunctionsByClientSubscriptionId[n]=async()=>{delete this._subscriptionDisposeFunctionsByClientSubscriptionId[n],delete this._subscriptionHashByClientSubscriptionId[n];let o=this._subscriptionsByHash[i];xe(o!==void 0,`Could not find a \`Subscription\` when tearing down client subscription #${n}`),o.callbacks.delete(e.callback),await this._updateSubscriptions()},this._updateSubscriptions(),n}onAccountChange(e,t,n){let{commitment:i,config:s}=Be(n),o=this._buildArgs([e.toBase58()],i||this._commitment||"finalized","base64",s);return this._makeSubscription({callback:t,method:"accountSubscribe",unsubscribeMethod:"accountUnsubscribe"},o)}async removeAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"account change")}_wsOnProgramAccountNotification(e){let{result:t,subscription:n}=$(e,Ev);this._handleServerNotification(n,[{accountId:t.value.pubkey,accountInfo:t.value.account},t.context])}onProgramAccountChange(e,t,n,i){let{commitment:s,config:o}=Be(n),c=this._buildArgs([e.toBase58()],s||this._commitment||"finalized","base64",o||(i?{filters:Hd(i)}:void 0));return this._makeSubscription({callback:t,method:"programSubscribe",unsubscribeMethod:"programUnsubscribe"},c)}async removeProgramAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"program account change")}onLogs(e,t,n){let i=this._buildArgs([typeof e=="object"?{mentions:[e.toString()]}:e],n||this._commitment||"finalized");return this._makeSubscription({callback:t,method:"logsSubscribe",unsubscribeMethod:"logsUnsubscribe"},i)}async removeOnLogsListener(e){await this._unsubscribeClientSubscription(e,"logs")}_wsOnLogsNotification(e){let{result:t,subscription:n}=$(e,Jv);this._handleServerNotification(n,[t.value,t.context])}_wsOnSlotNotification(e){let{result:t,subscription:n}=$(e,Sv);this._handleServerNotification(n,[t])}onSlotChange(e){return this._makeSubscription({callback:e,method:"slotSubscribe",unsubscribeMethod:"slotUnsubscribe"},[])}async removeSlotChangeListener(e){await this._unsubscribeClientSubscription(e,"slot change")}_wsOnSlotUpdatesNotification(e){let{result:t,subscription:n}=$(e,xv);this._handleServerNotification(n,[t])}onSlotUpdate(e){return this._makeSubscription({callback:e,method:"slotsUpdatesSubscribe",unsubscribeMethod:"slotsUpdatesUnsubscribe"},[])}async removeSlotUpdateListener(e){await this._unsubscribeClientSubscription(e,"slot update")}async _unsubscribeClientSubscription(e,t){let n=this._subscriptionDisposeFunctionsByClientSubscriptionId[e];n?await n():console.warn(`Ignored unsubscribe request because an active subscription with id \`${e}\` for '${t}' events could not be found.`)}_buildArgs(e,t,n,i){let s=t||this._commitment;if(s||n||i){let o={};n&&(o.encoding=n),s&&(o.commitment=s),i&&(o=Object.assign(o,i)),e.push(o)}return e}_buildArgsAtLeastConfirmed(e,t,n,i){let s=t||this._commitment;if(s&&!["confirmed","finalized"].includes(s))throw new Error("Using Connection with default commitment: `"+this._commitment+"`, but method requires at least `confirmed`");return this._buildArgs(e,t,n,i)}_wsOnSignatureNotification(e){let{result:t,subscription:n}=$(e,Iv);t.value!=="receivedSignature"&&this._subscriptionsAutoDisposedByRpc.add(n),this._handleServerNotification(n,t.value==="receivedSignature"?[{type:"received"},t.context]:[{type:"status",result:t.value},t.context])}onSignature(e,t,n){let i=this._buildArgs([e],n||this._commitment||"finalized"),s=this._makeSubscription({callback:(o,c)=>{if(o.type==="status"){t(o.result,c);try{this.removeSignatureListener(s)}catch{}}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},i);return s}onSignatureWithOptions(e,t,n){let{commitment:i,...s}={...n,commitment:n&&n.commitment||this._commitment||"finalized"},o=this._buildArgs([e],i,void 0,s),c=this._makeSubscription({callback:(u,p)=>{t(u,p);try{this.removeSignatureListener(c)}catch{}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},o);return c}async removeSignatureListener(e){await this._unsubscribeClientSubscription(e,"signature result")}_wsOnRootNotification(e){let{result:t,subscription:n}=$(e,Ov);this._handleServerNotification(n,[t])}onRootChange(e){return this._makeSubscription({callback:e,method:"rootSubscribe",unsubscribeMethod:"rootUnsubscribe"},[])}async removeRootChangeListener(e){await this._unsubscribeClientSubscription(e,"root change")}},Su=class r{constructor(e){this._keypair=void 0,this._keypair=e??zd()}static generate(){return new r(zd())}static fromSecretKey(e,t){if(e.byteLength!==64)throw new Error("bad secret key size");let n=e.slice(32,64);if(!t||!t.skipValidation){let i=e.slice(0,32),s=mu(i);for(let o=0;o<32;o++)if(n[o]!==s[o])throw new Error("provided secretKey is invalid")}return new r({publicKey:n,secretKey:e})}static fromSeed(e){let t=mu(e),n=new Uint8Array(64);return n.set(e),n.set(t,32),new r({publicKey:t,secretKey:n})}get publicKey(){return new ce(this._keypair.publicKey)}get secretKey(){return new Uint8Array(this._keypair.secretKey)}},is=Object.freeze({CreateLookupTable:{index:0,layout:E.struct([E.u32("instruction"),vi("recentSlot"),E.u8("bumpSeed")])},FreezeLookupTable:{index:1,layout:E.struct([E.u32("instruction")])},ExtendLookupTable:{index:2,layout:E.struct([E.u32("instruction"),vi(),E.seq(ye(),E.offset(E.u32(),-8),"addresses")])},DeactivateLookupTable:{index:3,layout:E.struct([E.u32("instruction")])},CloseLookupTable:{index:4,layout:E.struct([E.u32("instruction")])}});var Au=class{constructor(){}static createLookupTable(e){let[t,n]=ce.findProgramAddressSync([e.authority.toBuffer(),Vc().encode(e.recentSlot)],this.programId),i=is.CreateLookupTable,s=we(i,{recentSlot:BigInt(e.recentSlot),bumpSeed:n}),o=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:Dt.programId,isSigner:!1,isWritable:!1}];return[new Te({programId:this.programId,keys:o,data:s}),t]}static freezeLookupTable(e){let t=is.FreezeLookupTable,n=we(t),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new Te({programId:this.programId,keys:i,data:n})}static extendLookupTable(e){let t=is.ExtendLookupTable,n=we(t,{addresses:e.addresses.map(s=>s.toBytes())}),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return e.payer&&i.push({pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:Dt.programId,isSigner:!1,isWritable:!1}),new Te({programId:this.programId,keys:i,data:n})}static deactivateLookupTable(e){let t=is.DeactivateLookupTable,n=we(t),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new Te({programId:this.programId,keys:i,data:n})}static closeLookupTable(e){let t=is.CloseLookupTable,n=we(t),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.recipient,isSigner:!1,isWritable:!0}];return new Te({programId:this.programId,keys:i,data:n})}};Au.programId=new ce("AddressLookupTab1e1111111111111111111111111");var Fo=Object.freeze({RequestUnits:{index:0,layout:E.struct([E.u8("instruction"),E.u32("units"),E.u32("additionalFee")])},RequestHeapFrame:{index:1,layout:E.struct([E.u8("instruction"),E.u32("bytes")])},SetComputeUnitLimit:{index:2,layout:E.struct([E.u8("instruction"),E.u32("units")])},SetComputeUnitPrice:{index:3,layout:E.struct([E.u8("instruction"),vi("microLamports")])}}),xu=class{constructor(){}static requestUnits(e){let t=Fo.RequestUnits,n=we(t,e);return new Te({keys:[],programId:this.programId,data:n})}static requestHeapFrame(e){let t=Fo.RequestHeapFrame,n=we(t,e);return new Te({keys:[],programId:this.programId,data:n})}static setComputeUnitLimit(e){let t=Fo.SetComputeUnitLimit,n=we(t,e);return new Te({keys:[],programId:this.programId,data:n})}static setComputeUnitPrice(e){let t=Fo.SetComputeUnitPrice,n=we(t,{microLamports:BigInt(e.microLamports)});return new Te({keys:[],programId:this.programId,data:n})}};xu.programId=new ce("ComputeBudget111111111111111111111111111111");var Xd=64,Jd=32,Qd=64,eh=E.struct([E.u8("numSignatures"),E.u8("padding"),E.u16("signatureOffset"),E.u16("signatureInstructionIndex"),E.u16("publicKeyOffset"),E.u16("publicKeyInstructionIndex"),E.u16("messageDataOffset"),E.u16("messageDataSize"),E.u16("messageInstructionIndex")]),Iu=class r{constructor(){}static createInstructionWithPublicKey(e){let{publicKey:t,message:n,signature:i,instructionIndex:s}=e;xe(t.length===Jd,`Public Key must be ${Jd} bytes but received ${t.length} bytes`),xe(i.length===Qd,`Signature must be ${Qd} bytes but received ${i.length} bytes`);let o=eh.span,c=o+t.length,u=c+i.length,p=1,m=ae.Buffer.alloc(u+n.length),b=s??65535;return eh.encode({numSignatures:p,padding:0,signatureOffset:c,signatureInstructionIndex:b,publicKeyOffset:o,publicKeyInstructionIndex:b,messageDataOffset:u,messageDataSize:n.length,messageInstructionIndex:b},m),m.fill(t,o),m.fill(i,c),m.fill(n,u),new Te({keys:[],programId:r.programId,data:m})}static createInstructionWithPrivateKey(e){let{privateKey:t,message:n,instructionIndex:i}=e;xe(t.length===Xd,`Private key must be ${Xd} bytes but received ${t.length} bytes`);try{let s=Su.fromSecretKey(t),o=s.publicKey.toBytes(),c=ku(n,s.secretKey);return this.createInstructionWithPublicKey({publicKey:o,message:n,signature:c,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}};Iu.programId=new ce("Ed25519SigVerify111111111111111111111111111");var eE=(r,e)=>{let t=rs.sign(r,e);return[t.toCompactRawBytes(),t.recovery]};rs.utils.isValidPrivateKey;var tE=rs.getPublicKey,th=32,du=20,rh=64,rE=11,hu=E.struct([E.u8("numSignatures"),E.u16("signatureOffset"),E.u8("signatureInstructionIndex"),E.u16("ethAddressOffset"),E.u8("ethAddressInstructionIndex"),E.u16("messageDataOffset"),E.u16("messageDataSize"),E.u8("messageInstructionIndex"),E.blob(20,"ethAddress"),E.blob(64,"signature"),E.u8("recoveryId")]),Ou=class r{constructor(){}static publicKeyToEthAddress(e){xe(e.length===rh,`Public key must be ${rh} bytes but received ${e.length} bytes`);try{return ae.Buffer.from(tu(_e(e))).slice(-du)}catch(t){throw new Error(`Error constructing Ethereum address: ${t}`)}}static createInstructionWithPublicKey(e){let{publicKey:t,message:n,signature:i,recoveryId:s,instructionIndex:o}=e;return r.createInstructionWithEthAddress({ethAddress:r.publicKeyToEthAddress(t),message:n,signature:i,recoveryId:s,instructionIndex:o})}static createInstructionWithEthAddress(e){let{ethAddress:t,message:n,signature:i,recoveryId:s,instructionIndex:o=0}=e,c;typeof t=="string"?t.startsWith("0x")?c=ae.Buffer.from(t.substr(2),"hex"):c=ae.Buffer.from(t,"hex"):c=t,xe(c.length===du,`Address must be ${du} bytes but received ${c.length} bytes`);let u=1+rE,p=u,m=u+c.length,b=m+i.length+1,A=1,S=ae.Buffer.alloc(hu.span+n.length);return hu.encode({numSignatures:A,signatureOffset:m,signatureInstructionIndex:o,ethAddressOffset:p,ethAddressInstructionIndex:o,messageDataOffset:b,messageDataSize:n.length,messageInstructionIndex:o,signature:_e(i),ethAddress:_e(c),recoveryId:s},S),S.fill(_e(n),hu.span),new Te({keys:[],programId:r.programId,data:S})}static createInstructionWithPrivateKey(e){let{privateKey:t,message:n,instructionIndex:i}=e;xe(t.length===th,`Private key must be ${th} bytes but received ${t.length} bytes`);try{let s=_e(t),o=tE(s,!1).slice(1),c=ae.Buffer.from(tu(_e(n))),[u,p]=eE(c,s);return this.createInstructionWithPublicKey({publicKey:o,message:n,signature:u,recoveryId:p,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}};Ou.programId=new ce("KeccakSecp256k11111111111111111111111111111");var vh,nE=new ce("StakeConfig11111111111111111111111111111111");var us=class{constructor(e,t,n){this.unixTimestamp=void 0,this.epoch=void 0,this.custodian=void 0,this.unixTimestamp=e,this.epoch=t,this.custodian=n}};vh=us;us.default=new vh(0,0,ce.default);var un=Object.freeze({Initialize:{index:0,layout:E.struct([E.u32("instruction"),_1(),b1()])},Authorize:{index:1,layout:E.struct([E.u32("instruction"),ye("newAuthorized"),E.u32("stakeAuthorizationType")])},Delegate:{index:2,layout:E.struct([E.u32("instruction")])},Split:{index:3,layout:E.struct([E.u32("instruction"),E.ns64("lamports")])},Withdraw:{index:4,layout:E.struct([E.u32("instruction"),E.ns64("lamports")])},Deactivate:{index:5,layout:E.struct([E.u32("instruction")])},Merge:{index:7,layout:E.struct([E.u32("instruction")])},AuthorizeWithSeed:{index:8,layout:E.struct([E.u32("instruction"),ye("newAuthorized"),E.u32("stakeAuthorizationType"),bi("authoritySeed"),ye("authorityOwner")])}}),zA=Object.freeze({Staker:{index:0},Withdrawer:{index:1}}),Xo=class{constructor(){}static initialize(e){let{stakePubkey:t,authorized:n,lockup:i}=e,s=i||us.default,o=un.Initialize,c=we(o,{authorized:{staker:_e(n.staker.toBuffer()),withdrawer:_e(n.withdrawer.toBuffer())},lockup:{unixTimestamp:s.unixTimestamp,epoch:s.epoch,custodian:_e(s.custodian.toBuffer())}}),u={keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:os,isSigner:!1,isWritable:!1}],programId:this.programId,data:c};return new Te(u)}static createAccountWithSeed(e){let t=new Re;t.add(Dt.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:this.space,programId:this.programId}));let{stakePubkey:n,authorized:i,lockup:s}=e;return t.add(this.initialize({stakePubkey:n,authorized:i,lockup:s}))}static createAccount(e){let t=new Re;t.add(Dt.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,lamports:e.lamports,space:this.space,programId:this.programId}));let{stakePubkey:n,authorized:i,lockup:s}=e;return t.add(this.initialize({stakePubkey:n,authorized:i,lockup:s}))}static delegate(e){let{stakePubkey:t,authorizedPubkey:n,votePubkey:i}=e,s=un.Delegate,o=we(s);return new Re().add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:Cr,isSigner:!1,isWritable:!1},{pubkey:au,isSigner:!1,isWritable:!1},{pubkey:nE,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static authorize(e){let{stakePubkey:t,authorizedPubkey:n,newAuthorizedPubkey:i,stakeAuthorizationType:s,custodianPubkey:o}=e,c=un.Authorize,u=we(c,{newAuthorized:_e(i.toBuffer()),stakeAuthorizationType:s.index}),p=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Cr,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}];return o&&p.push({pubkey:o,isSigner:!0,isWritable:!1}),new Re().add({keys:p,programId:this.programId,data:u})}static authorizeWithSeed(e){let{stakePubkey:t,authorityBase:n,authoritySeed:i,authorityOwner:s,newAuthorizedPubkey:o,stakeAuthorizationType:c,custodianPubkey:u}=e,p=un.AuthorizeWithSeed,m=we(p,{newAuthorized:_e(o.toBuffer()),stakeAuthorizationType:c.index,authoritySeed:i,authorityOwner:_e(s.toBuffer())}),b=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:Cr,isSigner:!1,isWritable:!1}];return u&&b.push({pubkey:u,isSigner:!0,isWritable:!1}),new Re().add({keys:b,programId:this.programId,data:m})}static splitInstruction(e){let{stakePubkey:t,authorizedPubkey:n,splitStakePubkey:i,lamports:s}=e,o=un.Split,c=we(o,{lamports:s});return new Te({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:c})}static split(e,t){let n=new Re;return n.add(Dt.createAccount({fromPubkey:e.authorizedPubkey,newAccountPubkey:e.splitStakePubkey,lamports:t,space:this.space,programId:this.programId})),n.add(this.splitInstruction(e))}static splitWithSeed(e,t){let{stakePubkey:n,authorizedPubkey:i,splitStakePubkey:s,basePubkey:o,seed:c,lamports:u}=e,p=new Re;return p.add(Dt.allocate({accountPubkey:s,basePubkey:o,seed:c,space:this.space,programId:this.programId})),t&&t>0&&p.add(Dt.transfer({fromPubkey:e.authorizedPubkey,toPubkey:s,lamports:t})),p.add(this.splitInstruction({stakePubkey:n,authorizedPubkey:i,splitStakePubkey:s,lamports:u}))}static merge(e){let{stakePubkey:t,sourceStakePubKey:n,authorizedPubkey:i}=e,s=un.Merge,o=we(s);return new Re().add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:Cr,isSigner:!1,isWritable:!1},{pubkey:au,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static withdraw(e){let{stakePubkey:t,authorizedPubkey:n,toPubkey:i,lamports:s,custodianPubkey:o}=e,c=un.Withdraw,u=we(c,{lamports:s}),p=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:Cr,isSigner:!1,isWritable:!1},{pubkey:au,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return o&&p.push({pubkey:o,isSigner:!0,isWritable:!1}),new Re().add({keys:p,programId:this.programId,data:u})}static deactivate(e){let{stakePubkey:t,authorizedPubkey:n}=e,i=un.Deactivate,s=we(i);return new Re().add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Cr,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:s})}};Xo.programId=new ce("Stake11111111111111111111111111111111111111");Xo.space=200;var ss=Object.freeze({InitializeAccount:{index:0,layout:E.struct([E.u32("instruction"),w1()])},Authorize:{index:1,layout:E.struct([E.u32("instruction"),ye("newAuthorized"),E.u32("voteAuthorizationType")])},Withdraw:{index:3,layout:E.struct([E.u32("instruction"),E.ns64("lamports")])},UpdateValidatorIdentity:{index:4,layout:E.struct([E.u32("instruction")])},AuthorizeWithSeed:{index:10,layout:E.struct([E.u32("instruction"),v1()])}}),FA=Object.freeze({Voter:{index:0},Withdrawer:{index:1}}),Jo=class r{constructor(){}static initializeAccount(e){let{votePubkey:t,nodePubkey:n,voteInit:i}=e,s=ss.InitializeAccount,o=we(s,{voteInit:{nodePubkey:_e(i.nodePubkey.toBuffer()),authorizedVoter:_e(i.authorizedVoter.toBuffer()),authorizedWithdrawer:_e(i.authorizedWithdrawer.toBuffer()),commission:i.commission}}),c={keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:os,isSigner:!1,isWritable:!1},{pubkey:Cr,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:o};return new Te(c)}static createAccount(e){let t=new Re;return t.add(Dt.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.votePubkey,lamports:e.lamports,space:this.space,programId:this.programId})),t.add(this.initializeAccount({votePubkey:e.votePubkey,nodePubkey:e.voteInit.nodePubkey,voteInit:e.voteInit}))}static authorize(e){let{votePubkey:t,authorizedPubkey:n,newAuthorizedPubkey:i,voteAuthorizationType:s}=e,o=ss.Authorize,c=we(o,{newAuthorized:_e(i.toBuffer()),voteAuthorizationType:s.index}),u=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Cr,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return new Re().add({keys:u,programId:this.programId,data:c})}static authorizeWithSeed(e){let{currentAuthorityDerivedKeyBasePubkey:t,currentAuthorityDerivedKeyOwnerPubkey:n,currentAuthorityDerivedKeySeed:i,newAuthorizedPubkey:s,voteAuthorizationType:o,votePubkey:c}=e,u=ss.AuthorizeWithSeed,p=we(u,{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:_e(n.toBuffer()),currentAuthorityDerivedKeySeed:i,newAuthorized:_e(s.toBuffer()),voteAuthorizationType:o.index}}),m=[{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Cr,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!1}];return new Re().add({keys:m,programId:this.programId,data:p})}static withdraw(e){let{votePubkey:t,authorizedWithdrawerPubkey:n,lamports:i,toPubkey:s}=e,o=ss.Withdraw,c=we(o,{lamports:i}),u=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}];return new Re().add({keys:u,programId:this.programId,data:c})}static safeWithdraw(e,t,n){if(e.lamports>t-n)throw new Error("Withdraw will leave vote account with insufficient funds.");return r.withdraw(e)}static updateValidatorIdentity(e){let{votePubkey:t,authorizedWithdrawerPubkey:n,nodePubkey:i}=e,s=ss.UpdateValidatorIdentity,o=we(s),c=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return new Re().add({keys:c,programId:this.programId,data:o})}};Jo.programId=new ce("Vote111111111111111111111111111111111111111");Jo.space=3762;var VA=new ce("Va1idator1nfo111111111111111111111111111111"),$A=P({name:z(),website:ne(z()),details:ne(z()),iconUrl:ne(z()),keybaseUsername:ne(z())});var WA=new ce("Vote111111111111111111111111111111111111111"),qA=E.struct([ye("nodePubkey"),ye("authorizedWithdrawer"),E.u8("commission"),E.nu64(),E.seq(E.struct([E.nu64("slot"),E.u32("confirmationCount")]),E.offset(E.u32(),-8),"votes"),E.u8("rootSlotValid"),E.nu64("rootSlot"),E.nu64(),E.seq(E.struct([E.nu64("epoch"),ye("authorizedVoter")]),E.offset(E.u32(),-8),"authorizedVoters"),E.struct([E.seq(E.struct([ye("authorizedPubkey"),E.nu64("epochOfLastAuthorizedSwitch"),E.nu64("targetEpoch")]),32,"buf"),E.nu64("idx"),E.u8("isEmpty")],"priorVoters"),E.nu64(),E.seq(E.struct([E.nu64("epoch"),E.nu64("credits"),E.nu64("prevCredits")]),E.offset(E.u32(),-8),"epochCredits"),E.struct([E.nu64("slot"),E.nu64("timestamp")],"lastTimestamp")]);var Cu=r=>({request:r,signMessage:e=>r({method:"signMessage",params:{message:e}}),signTransaction:e=>r({method:"signTransaction",params:{transaction:e}}),signAndSendTransaction:e=>r({method:"signAndSendTransaction",params:e})});function Pu(r){return Buffer.from(r.serialize({verifySignatures:!1})).toString("base64")}function Mu(r){let e=Uint8Array.from(Buffer.from(r,"base64"));return(e[0]&128)!==0?Ho.deserialize(e):Re.from(e)}function iE(r){return async t=>{if(t.method==="connect")return await r(t);if(t.method==="signMessage")return await r(t);if(t.method==="signAndSendTransaction"){let{transaction:n,options:i}=t.params,s={transaction:Mu(n),options:i};return await r({method:"signAndSendTransaction",params:s})}if(t.method==="signTransaction"){let{transaction:n}=t.params,i={transaction:Mu(n)},{signedTransaction:s}=await r({method:"signTransaction",params:i});return{signedTransaction:Pu(s)}}}}function Uu(r){return async t=>{if(t.method==="connect")return await r(t);if(t.method==="signMessage")return await r(t);if(t.method==="signAndSendTransaction"){let{transaction:n,options:i}=t.params,s={transaction:Pu(n)};return await r({method:"signAndSendTransaction",params:s})}if(t.method==="signTransaction"){let{transaction:n}=t.params,i={transaction:Pu(n)},{signedTransaction:s}=await r({method:"signTransaction",params:i});return{signedTransaction:Mu(s)}}}}var Eh="0.1.1";function Rh(){return Eh}var ta=class r extends Error{constructor(e,t={}){let n=(()=>{if(t.cause instanceof r){if(t.cause.details)return t.cause.details;if(t.cause.shortMessage)return t.cause.shortMessage}return t.cause?.message?t.cause.message:t.details})(),i=t.cause instanceof r&&t.cause.docsPath||t.docsPath,o=`https://oxlib.sh${i??""}`,c=[e||"An error occurred.",...t.metaMessages?["",...t.metaMessages]:[],...n||i?["",n?`Details: ${n}`:void 0,i?`See: ${o}`:void 0]:[]].filter(u=>typeof u=="string").join(`
13
- `);super(c,t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${Rh()}`}),this.cause=t.cause,this.details=n,this.docs=o,this.docsPath=i,this.shortMessage=e}walk(e){return Sh(this,e)}};function Sh(r,e){return e?.(r)?r:r&&typeof r=="object"&&"cause"in r&&r.cause?Sh(r.cause,e):e?null:r}function ra(r,e={}){let{raw:t=!1}=e,n=r;if(t)return r;if(n.error){let{code:i}=n.error,s=i===Gn.code?Gn:i===fs.code?fs:i===bs.code?bs:i===ys.code?ys:i===ms.code?ms:i===_s.code?_s:i===ps.code?ps:i===ws.code?ws:i===ls.code?ls:i===ds.code?ds:i===hs.code?hs:i===gs.code?gs:St;throw new s(n.error)}return n.result}var St=class extends Error{constructor(e){let{code:t,message:n,data:i}=e;super(n),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.BaseError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t,this.data=i}},fs=class r extends St{constructor(e={}){super({message:"Missing or invalid parameters.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.InvalidInputError"})}};Object.defineProperty(fs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});var ls=class r extends St{constructor(e={}){super({message:"Requested resource not found.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.ResourceNotFoundError"})}};Object.defineProperty(ls,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});var ds=class r extends St{constructor(e={}){super({message:"Requested resource not available.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.ResourceUnavailableError"})}};Object.defineProperty(ds,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});var hs=class r extends St{constructor(e={}){super({message:"Transaction creation failed.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.TransactionRejectedError"})}};Object.defineProperty(hs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});var ps=class r extends St{constructor(e={}){super({message:"Method is not implemented.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.MethodNotSupportedError"})}};Object.defineProperty(ps,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});var ms=class r extends St{constructor(e={}){super({message:"Rate limit exceeded.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.LimitExceededError"})}};Object.defineProperty(ms,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});var gs=class r extends St{constructor(e={}){super({message:"JSON-RPC version not supported.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.VersionNotSupportedError"})}};Object.defineProperty(gs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});var ys=class r extends St{constructor(e={}){super({message:"Input is not a valid JSON-RPC request.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.InvalidRequestError"})}};Object.defineProperty(ys,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});var _s=class r extends St{constructor(e={}){super({message:"Method does not exist.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.MethodNotFoundError"})}};Object.defineProperty(_s,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});var bs=class r extends St{constructor(e={}){super({message:"Invalid method parameters.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.InvalidParamsError"})}};Object.defineProperty(bs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});var Gn=class r extends St{constructor(e={}){super({message:"Internal JSON-RPC error.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.InternalErrorError"})}};Object.defineProperty(Gn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});var ws=class r extends St{constructor(e={}){super({message:"Failed to parse JSON-RPC response.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.ParseError"})}};Object.defineProperty(ws,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});var _r=class extends Error{constructor(e,t){super(t),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ProviderRpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=e,this.details=t}},vs=class extends _r{constructor({message:e="The user rejected the request."}={}){super(4001,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.UserRejectedRequestError"})}};Object.defineProperty(vs,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});var Es=class extends _r{constructor({message:e="The requested method and/or account has not been authorized by the user."}={}){super(4100,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.UnauthorizedError"})}};Object.defineProperty(Es,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});var Rs=class extends _r{constructor({message:e="The provider does not support the requested method."}={}){super(4200,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.UnsupportedMethodError"})}};Object.defineProperty(Rs,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});var Ss=class extends _r{constructor({message:e="The provider is disconnected from all chains."}={}){super(4900,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.DisconnectedError"})}};Object.defineProperty(Ss,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});var As=class extends _r{constructor({message:e="The provider is not connected to the requested chain."}={}){super(4901,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.ChainDisconnectedError"})}};Object.defineProperty(As,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});function xh(){let r=new on.default;return{get eventNames(){return r.eventNames.bind(r)},get listenerCount(){return r.listenerCount.bind(r)},get listeners(){return r.listeners.bind(r)},addListener:r.addListener.bind(r),emit:r.emit.bind(r),off:r.off.bind(r),on:r.on.bind(r),once:r.once.bind(r),removeAllListeners:r.removeAllListeners.bind(r),removeListener:r.removeListener.bind(r)}}function Ih(r,e={}){let{includeEvents:t=!0}=e;if(!r)throw new Du;return{...t?{on:r.on?.bind(r),removeListener:r.removeListener?.bind(r)}:{},async request(n){let i=await r.request(n);return i&&typeof i=="object"&&"jsonrpc"in i?ra(i):i}}}var Du=class extends ta{constructor(){super("`provider` is undefined."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.IsUndefinedError"})}};function Oh(r={}){let e=r.id??0;return{prepare(t){return aE({id:e++,...t})},get id(){return e}}}function aE(r){return{...r,jsonrpc:"2.0"}}var Th=Symbol("Comlink.proxy"),uE=Symbol("Comlink.endpoint"),fE=Symbol("Comlink.releaseProxy"),zu=Symbol("Comlink.finalizer"),ia=Symbol("Comlink.thrown"),Nh=r=>typeof r=="object"&&r!==null||typeof r=="function",lE={canHandle:r=>Nh(r)&&r[Th],serialize(r){let{port1:e,port2:t}=new MessageChannel;return Lh(r,e),[t,[t]]},deserialize(r){return r.start(),Vu(r)}},dE={canHandle:r=>Nh(r)&&ia in r,serialize({value:r}){let e;return r instanceof Error?e={isError:!0,value:{message:r.message,name:r.name,stack:r.stack}}:e={isError:!1,value:r},[e,[]]},deserialize(r){throw r.isError?Object.assign(new Error(r.value.message),r.value):r.value}},Bh=new Map([["proxy",lE],["throw",dE]]);function hE(r,e){for(let t of r)if(e===t||t==="*"||t instanceof RegExp&&t.test(e))return!0;return!1}function Lh(r,e=globalThis,t=["*"]){e.addEventListener("message",function n(i){if(!i||!i.data)return;if(!hE(t,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}let{id:s,type:o,path:c}=Object.assign({path:[]},i.data),u=(i.data.argumentList||[]).map(Zn),p;try{let m=c.slice(0,-1).reduce((A,S)=>A[S],r),b=c.reduce((A,S)=>A[S],r);switch(o){case"GET":p=b;break;case"SET":m[c.slice(-1)[0]]=Zn(i.data.value),p=!0;break;case"APPLY":p=b.apply(m,u);break;case"CONSTRUCT":{let A=new b(...u);p=bE(A)}break;case"ENDPOINT":{let{port1:A,port2:S}=new MessageChannel;Lh(r,S),p=_E(A,[A])}break;case"RELEASE":p=void 0;break;default:return}}catch(m){p={value:m,[ia]:0}}Promise.resolve(p).catch(m=>({value:m,[ia]:0})).then(m=>{let[b,A]=aa(m);e.postMessage(Object.assign(Object.assign({},b),{id:s}),A),o==="RELEASE"&&(e.removeEventListener("message",n),Ch(e),zu in r&&typeof r[zu]=="function"&&r[zu]())}).catch(m=>{let[b,A]=aa({value:new TypeError("Unserializable return value"),[ia]:0});e.postMessage(Object.assign(Object.assign({},b),{id:s}),A)})}),e.start&&e.start()}function pE(r){return r.constructor.name==="MessagePort"}function Ch(r){pE(r)&&r.close()}function Vu(r,e){let t=new Map;return r.addEventListener("message",function(i){let{data:s}=i;if(!s||!s.id)return;let o=t.get(s.id);if(o)try{o(s)}finally{t.delete(s.id)}}),Fu(r,t,[],e)}function na(r){if(r)throw new Error("Proxy has been released and is not useable")}function Ph(r){return Si(r,new Map,{type:"RELEASE"}).then(()=>{Ch(r)})}var sa=new WeakMap,oa="FinalizationRegistry"in globalThis&&new FinalizationRegistry(r=>{let e=(sa.get(r)||0)-1;sa.set(r,e),e===0&&Ph(r)});function mE(r,e){let t=(sa.get(e)||0)+1;sa.set(e,t),oa&&oa.register(r,e,r)}function gE(r){oa&&oa.unregister(r)}function Fu(r,e,t=[],n=function(){}){let i=!1,s=new Proxy(n,{get(o,c){if(na(i),c===fE)return()=>{gE(s),Ph(r),e.clear(),i=!0};if(c==="then"){if(t.length===0)return{then:()=>s};let u=Si(r,e,{type:"GET",path:t.map(p=>p.toString())}).then(Zn);return u.then.bind(u)}return Fu(r,e,[...t,c])},set(o,c,u){na(i);let[p,m]=aa(u);return Si(r,e,{type:"SET",path:[...t,c].map(b=>b.toString()),value:p},m).then(Zn)},apply(o,c,u){na(i);let p=t[t.length-1];if(p===uE)return Si(r,e,{type:"ENDPOINT"}).then(Zn);if(p==="bind")return Fu(r,e,t.slice(0,-1));let[m,b]=kh(u);return Si(r,e,{type:"APPLY",path:t.map(A=>A.toString()),argumentList:m},b).then(Zn)},construct(o,c){na(i);let[u,p]=kh(c);return Si(r,e,{type:"CONSTRUCT",path:t.map(m=>m.toString()),argumentList:u},p).then(Zn)}});return mE(s,r),s}function yE(r){return Array.prototype.concat.apply([],r)}function kh(r){let e=r.map(aa);return[e.map(t=>t[0]),yE(e.map(t=>t[1]))]}var Mh=new WeakMap;function _E(r,e){return Mh.set(r,e),r}function bE(r){return Object.assign(r,{[Th]:!0})}function Uh(r,e=globalThis,t="*"){return{postMessage:(n,i)=>r.postMessage(n,t,i),addEventListener:e.addEventListener.bind(e),removeEventListener:e.removeEventListener.bind(e)}}function aa(r){for(let[e,t]of Bh)if(t.canHandle(r)){let[n,i]=t.serialize(r);return[{type:"HANDLER",name:e,value:n},i]}return[{type:"RAW",value:r},Mh.get(r)||[]]}function Zn(r){switch(r.type){case"HANDLER":return Bh.get(r.name).deserialize(r.value);case"RAW":return r.value}}function Si(r,e,t,n){return new Promise(i=>{let s=wE();e.set(s,i),r.start&&r.start(),r.postMessage(Object.assign({id:s},t),n)})}function wE(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var vE={postMessage(){},addEventListener:()=>{},removeEventListener:()=>{}},EE={postMessage:r=>{console.debug("[webview:req]",r),window.ReactNativeWebView.postMessage(JSON.stringify(r))},addEventListener:(r,e,...t)=>{document.addEventListener("FarcasterFrameCallback",e,...t)},removeEventListener:(r,e)=>{document.removeEventListener("FarcasterFrameCallback",e)}},Dh=typeof window>"u"?vE:window?.ReactNativeWebView?EE:Uh(window?.parent??window);var Se=Vu(Dh);var $u=xh(),RE=Oh();function SE({code:r,details:e}){switch(r){case 4001:return new vs;case 4100:return new Es;case 4200:return new Rs;case 4900:return new Ss;case 4901:return new As;default:return new _r(r,e??"Unknown provider RPC error")}}var xs=Ih({...$u,async request(r){let e=RE.prepare(r);try{let t=await Se.ethProviderRequestV2(e).then(n=>ra(n,{request:e,raw:!0}));if(t.error)throw SE(t.error);return t.result}catch(t){if(t instanceof Error&&t.message.match(/cannot read property 'apply'/i))return await Se.ethProviderRequest(e);throw t instanceof _r||t instanceof St?t:new Gn({message:t instanceof Error?t.message:void 0})}}});async function zh(){if((await Se.getCapabilities()).includes("wallet.getEvmProvider"))return xs}function Fh(r){let e=new CustomEvent("eip6963:announceProvider",{detail:Object.freeze(r)});window.dispatchEvent(e);let t=()=>window.dispatchEvent(e);return window.addEventListener("eip6963:requestProvider",t),()=>window.removeEventListener("eip6963:requestProvider",t)}typeof document<"u"&&(document.addEventListener("eip6963:requestProvider",()=>{Se.eip6963RequestProvider()}),document.addEventListener("FarcasterFrameEthProviderEvent",r=>{if(r instanceof MessageEvent){let e=r.data;$u.emit(e.event,...e.params)}}),document.addEventListener("FarcasterFrameEvent",r=>{if(r instanceof MessageEvent){let e=r.data;e.event==="eip6963:announceProvider"&&Fh({info:e.info,provider:xs})}}));typeof window<"u"&&(window.addEventListener("eip6963:requestProvider",()=>{Se.eip6963RequestProvider()}),window.addEventListener("message",r=>{if(r instanceof MessageEvent&&r.data.type==="frameEthProviderEvent"){let e=r.data;$u.emit(e.event,...e.params)}}),window.addEventListener("message",r=>{if(r instanceof MessageEvent&&r.data.type==="frameEvent"){let e=r.data.event;e.event==="eip6963:announceProvider"&&Fh({info:e.info,provider:xs})}}));var{solanaProviderRequest:Vh}=Se,$h;Vh&&($h=Cu(Uu(Vh)));async function Wh(){if((await Se.getCapabilities()).includes("wallet.getSolanaProvider"))return $h}function Kh(){let r=new on.default;return{get eventNames(){return r.eventNames.bind(r)},get listenerCount(){return r.listenerCount.bind(r)},get listeners(){return r.listeners.bind(r)},addListener:r.addListener.bind(r),emit:r.emit.bind(r),off:r.off.bind(r),on:r.on.bind(r),once:r.once.bind(r),removeAllListeners:r.removeAllListeners.bind(r),removeListener:r.removeListener.bind(r)}}var Jt=Kh(),qh=null;async function AE(r=50){if(qh===!0)return!0;if(typeof window>"u"||!window.ReactNativeWebView&&window===window.parent)return!1;let e=await Promise.race([Se.context.then(t=>!!t),new Promise(t=>{setTimeout(()=>t(!1),r)})]).catch(()=>!1);return e&&(qh=!0),e}var jh=async()=>{let r=await Se.addFrame();if(r.result)return r.result;throw r.error.type==="invalid_domain_manifest"?new Xn.InvalidDomainManifest:r.error.type==="rejected_by_user"?new Xn.RejectedByUser:new Error("Unreachable")},Wu={...Jt,getCapabilities:Se.getCapabilities,isInMiniApp:AE,context:Se.context,actions:{setPrimaryButton:Se.setPrimaryButton.bind(Se),ready:Se.ready.bind(Se),close:Se.close.bind(Se),viewProfile:Se.viewProfile.bind(Se),signIn:async r=>{let e=await Se.signIn(r);if(e.result)return e.result;throw e.error.type==="rejected_by_user"?new Ii.RejectedByUser:new Error("Unreachable")},openUrl:r=>{let e=typeof r=="string"?r:r.url;return Se.openUrl(e.trim())},addFrame:jh,addMiniApp:jh,composeCast(r={}){return Se.composeCast(r)},viewToken:Se.viewToken.bind(Se),sendToken:Se.sendToken.bind(Se),swapToken:Se.swapToken.bind(Se)},experimental:{getSolanaProvider:Wh},wallet:{ethProvider:xs,getEvmProvider:zh}};typeof document<"u"&&document.addEventListener("FarcasterFrameEvent",r=>{if(r instanceof MessageEvent){let e=r.data;e.event==="primary_button_clicked"?Jt.emit("primaryButtonClicked"):e.event==="frame_added"?Jt.emit("frameAdded",{notificationDetails:e.notificationDetails}):e.event==="frame_add_rejected"?Jt.emit("frameAddRejected",{reason:e.reason}):e.event==="frame_removed"?Jt.emit("frameRemoved"):e.event==="notifications_enabled"?Jt.emit("notificationsEnabled",{notificationDetails:e.notificationDetails}):e.event==="notifications_disabled"&&Jt.emit("notificationsDisabled")}});typeof window<"u"&&window.addEventListener("message",r=>{if(r instanceof MessageEvent&&r.data.type==="frameEvent"){let e=r.data.event;e.event==="primary_button_clicked"?Jt.emit("primaryButtonClicked"):e.event==="frame_added"?Jt.emit("frameAdded",{notificationDetails:e.notificationDetails}):e.event==="frame_add_rejected"?Jt.emit("frameAddRejected",{reason:e.reason}):e.event==="frame_removed"?Jt.emit("frameRemoved"):e.event==="notifications_enabled"?Jt.emit("notificationsEnabled",{notificationDetails:e.notificationDetails}):e.event==="notifications_disabled"&&Jt.emit("notificationsDisabled")}});var xE=Wu;return Ia(IE);})();
13
+ `);super(c,t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${Rh()}`}),this.cause=t.cause,this.details=n,this.docs=o,this.docsPath=i,this.shortMessage=e}walk(e){return Sh(this,e)}};function Sh(r,e){return e?.(r)?r:r&&typeof r=="object"&&"cause"in r&&r.cause?Sh(r.cause,e):e?null:r}function ra(r,e={}){let{raw:t=!1}=e,n=r;if(t)return r;if(n.error){let{code:i}=n.error,s=i===Gn.code?Gn:i===fs.code?fs:i===bs.code?bs:i===ys.code?ys:i===ms.code?ms:i===_s.code?_s:i===ps.code?ps:i===ws.code?ws:i===ls.code?ls:i===ds.code?ds:i===hs.code?hs:i===gs.code?gs:St;throw new s(n.error)}return n.result}var St=class extends Error{constructor(e){let{code:t,message:n,data:i}=e;super(n),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.BaseError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t,this.data=i}},fs=class r extends St{constructor(e={}){super({message:"Missing or invalid parameters.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.InvalidInputError"})}};Object.defineProperty(fs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});var ls=class r extends St{constructor(e={}){super({message:"Requested resource not found.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.ResourceNotFoundError"})}};Object.defineProperty(ls,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});var ds=class r extends St{constructor(e={}){super({message:"Requested resource not available.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.ResourceUnavailableError"})}};Object.defineProperty(ds,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});var hs=class r extends St{constructor(e={}){super({message:"Transaction creation failed.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.TransactionRejectedError"})}};Object.defineProperty(hs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});var ps=class r extends St{constructor(e={}){super({message:"Method is not implemented.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.MethodNotSupportedError"})}};Object.defineProperty(ps,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});var ms=class r extends St{constructor(e={}){super({message:"Rate limit exceeded.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.LimitExceededError"})}};Object.defineProperty(ms,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});var gs=class r extends St{constructor(e={}){super({message:"JSON-RPC version not supported.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.VersionNotSupportedError"})}};Object.defineProperty(gs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});var ys=class r extends St{constructor(e={}){super({message:"Input is not a valid JSON-RPC request.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.InvalidRequestError"})}};Object.defineProperty(ys,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});var _s=class r extends St{constructor(e={}){super({message:"Method does not exist.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.MethodNotFoundError"})}};Object.defineProperty(_s,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});var bs=class r extends St{constructor(e={}){super({message:"Invalid method parameters.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.InvalidParamsError"})}};Object.defineProperty(bs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});var Gn=class r extends St{constructor(e={}){super({message:"Internal JSON-RPC error.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.InternalErrorError"})}};Object.defineProperty(Gn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});var ws=class r extends St{constructor(e={}){super({message:"Failed to parse JSON-RPC response.",...e,code:r.code}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcResponse.ParseError"})}};Object.defineProperty(ws,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});var _r=class extends Error{constructor(e,t){super(t),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ProviderRpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=e,this.details=t}},vs=class extends _r{constructor({message:e="The user rejected the request."}={}){super(4001,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.UserRejectedRequestError"})}};Object.defineProperty(vs,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});var Es=class extends _r{constructor({message:e="The requested method and/or account has not been authorized by the user."}={}){super(4100,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.UnauthorizedError"})}};Object.defineProperty(Es,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});var Rs=class extends _r{constructor({message:e="The provider does not support the requested method."}={}){super(4200,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.UnsupportedMethodError"})}};Object.defineProperty(Rs,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});var Ss=class extends _r{constructor({message:e="The provider is disconnected from all chains."}={}){super(4900,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.DisconnectedError"})}};Object.defineProperty(Ss,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});var As=class extends _r{constructor({message:e="The provider is not connected to the requested chain."}={}){super(4901,e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.ChainDisconnectedError"})}};Object.defineProperty(As,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});function xh(){let r=new on.default;return{get eventNames(){return r.eventNames.bind(r)},get listenerCount(){return r.listenerCount.bind(r)},get listeners(){return r.listeners.bind(r)},addListener:r.addListener.bind(r),emit:r.emit.bind(r),off:r.off.bind(r),on:r.on.bind(r),once:r.once.bind(r),removeAllListeners:r.removeAllListeners.bind(r),removeListener:r.removeListener.bind(r)}}function Ih(r,e={}){let{includeEvents:t=!0}=e;if(!r)throw new Du;return{...t?{on:r.on?.bind(r),removeListener:r.removeListener?.bind(r)}:{},async request(n){let i=await r.request(n);return i&&typeof i=="object"&&"jsonrpc"in i?ra(i):i}}}var Du=class extends ta{constructor(){super("`provider` is undefined."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Provider.IsUndefinedError"})}};function Oh(r={}){let e=r.id??0;return{prepare(t){return aE({id:e++,...t})},get id(){return e}}}function aE(r){return{...r,jsonrpc:"2.0"}}var Th=Symbol("Comlink.proxy"),uE=Symbol("Comlink.endpoint"),fE=Symbol("Comlink.releaseProxy"),zu=Symbol("Comlink.finalizer"),ia=Symbol("Comlink.thrown"),Nh=r=>typeof r=="object"&&r!==null||typeof r=="function",lE={canHandle:r=>Nh(r)&&r[Th],serialize(r){let{port1:e,port2:t}=new MessageChannel;return Lh(r,e),[t,[t]]},deserialize(r){return r.start(),Vu(r)}},dE={canHandle:r=>Nh(r)&&ia in r,serialize({value:r}){let e;return r instanceof Error?e={isError:!0,value:{message:r.message,name:r.name,stack:r.stack}}:e={isError:!1,value:r},[e,[]]},deserialize(r){throw r.isError?Object.assign(new Error(r.value.message),r.value):r.value}},Bh=new Map([["proxy",lE],["throw",dE]]);function hE(r,e){for(let t of r)if(e===t||t==="*"||t instanceof RegExp&&t.test(e))return!0;return!1}function Lh(r,e=globalThis,t=["*"]){e.addEventListener("message",function n(i){if(!i||!i.data)return;if(!hE(t,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}let{id:s,type:o,path:c}=Object.assign({path:[]},i.data),u=(i.data.argumentList||[]).map(Zn),p;try{let m=c.slice(0,-1).reduce((A,S)=>A[S],r),b=c.reduce((A,S)=>A[S],r);switch(o){case"GET":p=b;break;case"SET":m[c.slice(-1)[0]]=Zn(i.data.value),p=!0;break;case"APPLY":p=b.apply(m,u);break;case"CONSTRUCT":{let A=new b(...u);p=bE(A)}break;case"ENDPOINT":{let{port1:A,port2:S}=new MessageChannel;Lh(r,S),p=_E(A,[A])}break;case"RELEASE":p=void 0;break;default:return}}catch(m){p={value:m,[ia]:0}}Promise.resolve(p).catch(m=>({value:m,[ia]:0})).then(m=>{let[b,A]=aa(m);e.postMessage(Object.assign(Object.assign({},b),{id:s}),A),o==="RELEASE"&&(e.removeEventListener("message",n),Ch(e),zu in r&&typeof r[zu]=="function"&&r[zu]())}).catch(m=>{let[b,A]=aa({value:new TypeError("Unserializable return value"),[ia]:0});e.postMessage(Object.assign(Object.assign({},b),{id:s}),A)})}),e.start&&e.start()}function pE(r){return r.constructor.name==="MessagePort"}function Ch(r){pE(r)&&r.close()}function Vu(r,e){let t=new Map;return r.addEventListener("message",function(i){let{data:s}=i;if(!s||!s.id)return;let o=t.get(s.id);if(o)try{o(s)}finally{t.delete(s.id)}}),Fu(r,t,[],e)}function na(r){if(r)throw new Error("Proxy has been released and is not useable")}function Ph(r){return Si(r,new Map,{type:"RELEASE"}).then(()=>{Ch(r)})}var sa=new WeakMap,oa="FinalizationRegistry"in globalThis&&new FinalizationRegistry(r=>{let e=(sa.get(r)||0)-1;sa.set(r,e),e===0&&Ph(r)});function mE(r,e){let t=(sa.get(e)||0)+1;sa.set(e,t),oa&&oa.register(r,e,r)}function gE(r){oa&&oa.unregister(r)}function Fu(r,e,t=[],n=function(){}){let i=!1,s=new Proxy(n,{get(o,c){if(na(i),c===fE)return()=>{gE(s),Ph(r),e.clear(),i=!0};if(c==="then"){if(t.length===0)return{then:()=>s};let u=Si(r,e,{type:"GET",path:t.map(p=>p.toString())}).then(Zn);return u.then.bind(u)}return Fu(r,e,[...t,c])},set(o,c,u){na(i);let[p,m]=aa(u);return Si(r,e,{type:"SET",path:[...t,c].map(b=>b.toString()),value:p},m).then(Zn)},apply(o,c,u){na(i);let p=t[t.length-1];if(p===uE)return Si(r,e,{type:"ENDPOINT"}).then(Zn);if(p==="bind")return Fu(r,e,t.slice(0,-1));let[m,b]=kh(u);return Si(r,e,{type:"APPLY",path:t.map(A=>A.toString()),argumentList:m},b).then(Zn)},construct(o,c){na(i);let[u,p]=kh(c);return Si(r,e,{type:"CONSTRUCT",path:t.map(m=>m.toString()),argumentList:u},p).then(Zn)}});return mE(s,r),s}function yE(r){return Array.prototype.concat.apply([],r)}function kh(r){let e=r.map(aa);return[e.map(t=>t[0]),yE(e.map(t=>t[1]))]}var Mh=new WeakMap;function _E(r,e){return Mh.set(r,e),r}function bE(r){return Object.assign(r,{[Th]:!0})}function Uh(r,e=globalThis,t="*"){return{postMessage:(n,i)=>r.postMessage(n,t,i),addEventListener:e.addEventListener.bind(e),removeEventListener:e.removeEventListener.bind(e)}}function aa(r){for(let[e,t]of Bh)if(t.canHandle(r)){let[n,i]=t.serialize(r);return[{type:"HANDLER",name:e,value:n},i]}return[{type:"RAW",value:r},Mh.get(r)||[]]}function Zn(r){switch(r.type){case"HANDLER":return Bh.get(r.name).deserialize(r.value);case"RAW":return r.value}}function Si(r,e,t,n){return new Promise(i=>{let s=wE();e.set(s,i),r.start&&r.start(),r.postMessage(Object.assign({id:s},t),n)})}function wE(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var vE={postMessage(){},addEventListener:()=>{},removeEventListener:()=>{}},EE={postMessage:r=>{console.debug("[webview:req]",r),window.ReactNativeWebView.postMessage(JSON.stringify(r))},addEventListener:(r,e,...t)=>{document.addEventListener("FarcasterFrameCallback",e,...t)},removeEventListener:(r,e)=>{document.removeEventListener("FarcasterFrameCallback",e)}},Dh=typeof window>"u"?vE:window?.ReactNativeWebView?EE:Uh(window?.parent??window);var Se=Vu(Dh);var $u=xh(),RE=Oh();function SE({code:r,details:e}){switch(r){case 4001:return new vs;case 4100:return new Es;case 4200:return new Rs;case 4900:return new Ss;case 4901:return new As;default:return new _r(r,e??"Unknown provider RPC error")}}var xs=Ih({...$u,async request(r){let e=RE.prepare(r);try{let t=await Se.ethProviderRequestV2(e).then(n=>ra(n,{request:e,raw:!0}));if(t.error)throw SE(t.error);return t.result}catch(t){if(t instanceof Error&&t.message.match(/cannot read property 'apply'/i))return await Se.ethProviderRequest(e);throw t instanceof _r||t instanceof St?t:new Gn({message:t instanceof Error?t.message:void 0})}}});async function zh(){let r;try{r=await Se.getCapabilities()}catch{}if(r?.includes("wallet.getEvmProvider"))return xs}function Fh(r){let e=new CustomEvent("eip6963:announceProvider",{detail:Object.freeze(r)});window.dispatchEvent(e);let t=()=>window.dispatchEvent(e);return window.addEventListener("eip6963:requestProvider",t),()=>window.removeEventListener("eip6963:requestProvider",t)}typeof document<"u"&&(document.addEventListener("eip6963:requestProvider",()=>{Se.eip6963RequestProvider()}),document.addEventListener("FarcasterFrameEthProviderEvent",r=>{if(r instanceof MessageEvent){let e=r.data;$u.emit(e.event,...e.params)}}),document.addEventListener("FarcasterFrameEvent",r=>{if(r instanceof MessageEvent){let e=r.data;e.event==="eip6963:announceProvider"&&Fh({info:e.info,provider:xs})}}));typeof window<"u"&&(window.addEventListener("eip6963:requestProvider",()=>{Se.eip6963RequestProvider()}),window.addEventListener("message",r=>{if(r instanceof MessageEvent&&r.data.type==="frameEthProviderEvent"){let e=r.data;$u.emit(e.event,...e.params)}}),window.addEventListener("message",r=>{if(r instanceof MessageEvent&&r.data.type==="frameEvent"){let e=r.data.event;e.event==="eip6963:announceProvider"&&Fh({info:e.info,provider:xs})}}));var{solanaProviderRequest:Vh}=Se,$h;Vh&&($h=Cu(Uu(Vh)));async function Wh(){let r;try{r=await Se.getCapabilities()}catch{}if(r?.includes("wallet.getSolanaProvider"))return $h}function Kh(){let r=new on.default;return{get eventNames(){return r.eventNames.bind(r)},get listenerCount(){return r.listenerCount.bind(r)},get listeners(){return r.listeners.bind(r)},addListener:r.addListener.bind(r),emit:r.emit.bind(r),off:r.off.bind(r),on:r.on.bind(r),once:r.once.bind(r),removeAllListeners:r.removeAllListeners.bind(r),removeListener:r.removeListener.bind(r)}}var Jt=Kh(),qh=null;async function AE(r=50){if(qh===!0)return!0;if(typeof window>"u"||!window.ReactNativeWebView&&window===window.parent)return!1;let e=await Promise.race([Se.context.then(t=>!!t),new Promise(t=>{setTimeout(()=>t(!1),r)})]).catch(()=>!1);return e&&(qh=!0),e}var jh=async()=>{let r=await Se.addFrame();if(r.result)return r.result;throw r.error.type==="invalid_domain_manifest"?new Xn.InvalidDomainManifest:r.error.type==="rejected_by_user"?new Xn.RejectedByUser:new Error("Unreachable")},Wu={...Jt,getCapabilities:Se.getCapabilities,isInMiniApp:AE,context:Se.context,actions:{setPrimaryButton:Se.setPrimaryButton.bind(Se),ready:Se.ready.bind(Se),close:Se.close.bind(Se),viewProfile:Se.viewProfile.bind(Se),signIn:async r=>{let e=await Se.signIn(r);if(e.result)return e.result;throw e.error.type==="rejected_by_user"?new Ii.RejectedByUser:new Error("Unreachable")},openUrl:r=>{let e=typeof r=="string"?r:r.url;return Se.openUrl(e.trim())},addFrame:jh,addMiniApp:jh,composeCast(r={}){return Se.composeCast(r)},viewToken:Se.viewToken.bind(Se),sendToken:Se.sendToken.bind(Se),swapToken:Se.swapToken.bind(Se)},experimental:{getSolanaProvider:Wh},wallet:{ethProvider:xs,getEvmProvider:zh}};typeof document<"u"&&document.addEventListener("FarcasterFrameEvent",r=>{if(r instanceof MessageEvent){let e=r.data;e.event==="primary_button_clicked"?Jt.emit("primaryButtonClicked"):e.event==="frame_added"?Jt.emit("frameAdded",{notificationDetails:e.notificationDetails}):e.event==="frame_add_rejected"?Jt.emit("frameAddRejected",{reason:e.reason}):e.event==="frame_removed"?Jt.emit("frameRemoved"):e.event==="notifications_enabled"?Jt.emit("notificationsEnabled",{notificationDetails:e.notificationDetails}):e.event==="notifications_disabled"&&Jt.emit("notificationsDisabled")}});typeof window<"u"&&window.addEventListener("message",r=>{if(r instanceof MessageEvent&&r.data.type==="frameEvent"){let e=r.data.event;e.event==="primary_button_clicked"?Jt.emit("primaryButtonClicked"):e.event==="frame_added"?Jt.emit("frameAdded",{notificationDetails:e.notificationDetails}):e.event==="frame_add_rejected"?Jt.emit("frameAddRejected",{reason:e.reason}):e.event==="frame_removed"?Jt.emit("frameRemoved"):e.event==="notifications_enabled"?Jt.emit("notificationsEnabled",{notificationDetails:e.notificationDetails}):e.event==="notifications_disabled"&&Jt.emit("notificationsDisabled")}});var xE=Wu;return Ia(IE);})();
14
14
  /*! Bundled license information:
15
15
 
16
16
  ieee754/index.js: