@collectorcrypt/vrf-client 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -10,8 +10,8 @@ export { CC_VRF_PROGRAM_ID, SUITE_EDWARDS25519_SHA512_TAI } from "./constants";
10
10
  export { deriveAuthorityAddress, deriveProofCommitAddress, deriveProofCommitWithBetaAddress, memoHash, alphaHash, proofHash, encodeLabel, } from "./addresses";
11
11
  export { forceLightV2, buildCreateContext, buildCommitProofContext, buildReadOnlyAuthorityContext, buildMutateContext, } from "./light";
12
12
  export { getProgram } from "./program";
13
- export { buildInitAuthorityIx, buildFreezeAuthorityIx, buildRevokeAuthorityIx, buildCommitProofIx, buildCommitProofEventIx, buildCommitProofWithBetaIx, fetchAuthority, fetchProofCommit, fetchProofCommitWithBeta, fetchProofCommitEvents, decodeAuthority, decodeProofCommit, decodeProofCommitWithBeta, asTx, } from "./operations";
14
- export type { InitAuthorityInput, FreezeAuthorityInput, CommitProofInput, ProofCommitEvent, } from "./operations";
13
+ export { buildInitAuthorityIx, buildFreezeAuthorityIx, buildRevokeAuthorityIx, buildCommitProofIx, buildCommitProofEventIx, buildCommitProofWithBetaIx, fetchAuthority, fetchProofCommit, fetchProofCommitWithBeta, fetchProofCommitEvents, findProofCommitEvents, decodeAuthority, decodeProofCommit, decodeProofCommitWithBeta, asTx, } from "./operations";
14
+ export type { InitAuthorityInput, FreezeAuthorityInput, CommitProofInput, ProofCommitEvent, ProofCommitEventQuery, ProofCommitEventResult, } from "./operations";
15
15
  export { verifyEndToEnd, verifyAuthorityCommitEndToEnd, pickCanonicalCommit, } from "./verifyEndToEnd";
16
16
  export type { OnChainAuthority, OnChainCommit, VerifyAuthorityCommitEndToEndInput, VerifyAuthorityCommitEndToEndResult, VerifyEndToEndInput, VerifyEndToEndResult, PickCanonicalResult, } from "./verifyEndToEnd";
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,gCAAgC,EAChC,QAAQ,EACR,SAAS,EACT,SAAS,EACT,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,IAAI,GACL,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,kCAAkC,EAClC,mCAAmC,EACnC,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,gCAAgC,EAChC,QAAQ,EACR,SAAS,EACT,SAAS,EACT,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,IAAI,GACL,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,kCAAkC,EAClC,mCAAmC,EACnC,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * consumers can publish, commit, and verify VRF proofs with one import.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.pickCanonicalCommit = exports.verifyAuthorityCommitEndToEnd = exports.verifyEndToEnd = exports.asTx = exports.decodeProofCommitWithBeta = exports.decodeProofCommit = exports.decodeAuthority = exports.fetchProofCommitEvents = exports.fetchProofCommitWithBeta = exports.fetchProofCommit = exports.fetchAuthority = exports.buildCommitProofWithBetaIx = exports.buildCommitProofEventIx = exports.buildCommitProofIx = exports.buildRevokeAuthorityIx = exports.buildFreezeAuthorityIx = exports.buildInitAuthorityIx = exports.getProgram = exports.buildMutateContext = exports.buildReadOnlyAuthorityContext = exports.buildCommitProofContext = exports.buildCreateContext = exports.forceLightV2 = exports.encodeLabel = exports.proofHash = exports.alphaHash = exports.memoHash = exports.deriveProofCommitWithBetaAddress = exports.deriveProofCommitAddress = exports.deriveAuthorityAddress = exports.SUITE_EDWARDS25519_SHA512_TAI = exports.CC_VRF_PROGRAM_ID = exports.hexToBytes = exports.bytesToHex = exports.vrfProofToHash = exports.verifyVRF = exports.proveVRF = exports.publicKeyFromSeed = exports.generateKeyPair = void 0;
10
+ exports.pickCanonicalCommit = exports.verifyAuthorityCommitEndToEnd = exports.verifyEndToEnd = exports.asTx = exports.decodeProofCommitWithBeta = exports.decodeProofCommit = exports.decodeAuthority = exports.findProofCommitEvents = exports.fetchProofCommitEvents = exports.fetchProofCommitWithBeta = exports.fetchProofCommit = exports.fetchAuthority = exports.buildCommitProofWithBetaIx = exports.buildCommitProofEventIx = exports.buildCommitProofIx = exports.buildRevokeAuthorityIx = exports.buildFreezeAuthorityIx = exports.buildInitAuthorityIx = exports.getProgram = exports.buildMutateContext = exports.buildReadOnlyAuthorityContext = exports.buildCommitProofContext = exports.buildCreateContext = exports.forceLightV2 = exports.encodeLabel = exports.proofHash = exports.alphaHash = exports.memoHash = exports.deriveProofCommitWithBetaAddress = exports.deriveProofCommitAddress = exports.deriveAuthorityAddress = exports.SUITE_EDWARDS25519_SHA512_TAI = exports.CC_VRF_PROGRAM_ID = exports.hexToBytes = exports.bytesToHex = exports.vrfProofToHash = exports.verifyVRF = exports.proveVRF = exports.publicKeyFromSeed = exports.generateKeyPair = void 0;
11
11
  // Re-export the ECVRF primitives so consumers don't need a second import.
12
12
  var ecvrf_1 = require("@collectorcrypt/ecvrf");
13
13
  Object.defineProperty(exports, "generateKeyPair", { enumerable: true, get: function () { return ecvrf_1.generateKeyPair; } });
@@ -47,6 +47,7 @@ Object.defineProperty(exports, "fetchAuthority", { enumerable: true, get: functi
47
47
  Object.defineProperty(exports, "fetchProofCommit", { enumerable: true, get: function () { return operations_1.fetchProofCommit; } });
48
48
  Object.defineProperty(exports, "fetchProofCommitWithBeta", { enumerable: true, get: function () { return operations_1.fetchProofCommitWithBeta; } });
49
49
  Object.defineProperty(exports, "fetchProofCommitEvents", { enumerable: true, get: function () { return operations_1.fetchProofCommitEvents; } });
50
+ Object.defineProperty(exports, "findProofCommitEvents", { enumerable: true, get: function () { return operations_1.findProofCommitEvents; } });
50
51
  Object.defineProperty(exports, "decodeAuthority", { enumerable: true, get: function () { return operations_1.decodeAuthority; } });
51
52
  Object.defineProperty(exports, "decodeProofCommit", { enumerable: true, get: function () { return operations_1.decodeProofCommit; } });
52
53
  Object.defineProperty(exports, "decodeProofCommitWithBeta", { enumerable: true, get: function () { return operations_1.decodeProofCommitWithBeta; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,0EAA0E;AAC1E,+CAQ+B;AAP7B,wGAAA,eAAe,OAAA;AACf,0GAAA,iBAAiB,OAAA;AACjB,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,uGAAA,cAAc,OAAA;AACd,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AAGZ,yCAA+E;AAAtE,8GAAA,iBAAiB,OAAA;AAAE,0HAAA,6BAA6B,OAAA;AAEzD,yCAQqB;AAPnB,mHAAA,sBAAsB,OAAA;AACtB,qHAAA,wBAAwB,OAAA;AACxB,6HAAA,gCAAgC,OAAA;AAChC,qGAAA,QAAQ,OAAA;AACR,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AACT,wGAAA,WAAW,OAAA;AAGb,iCAMiB;AALf,qGAAA,YAAY,OAAA;AACZ,2GAAA,kBAAkB,OAAA;AAClB,gHAAA,uBAAuB,OAAA;AACvB,sHAAA,6BAA6B,OAAA;AAC7B,2GAAA,kBAAkB,OAAA;AAGpB,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAEnB,2CAesB;AAdpB,kHAAA,oBAAoB,OAAA;AACpB,oHAAA,sBAAsB,OAAA;AACtB,oHAAA,sBAAsB,OAAA;AACtB,gHAAA,kBAAkB,OAAA;AAClB,qHAAA,uBAAuB,OAAA;AACvB,wHAAA,0BAA0B,OAAA;AAC1B,4GAAA,cAAc,OAAA;AACd,8GAAA,gBAAgB,OAAA;AAChB,sHAAA,wBAAwB,OAAA;AACxB,oHAAA,sBAAsB,OAAA;AACtB,6GAAA,eAAe,OAAA;AACf,+GAAA,iBAAiB,OAAA;AACjB,uHAAA,yBAAyB,OAAA;AACzB,kGAAA,IAAI,OAAA;AAUN,mDAI0B;AAHxB,gHAAA,cAAc,OAAA;AACd,+HAAA,6BAA6B,OAAA;AAC7B,qHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,0EAA0E;AAC1E,+CAQ+B;AAP7B,wGAAA,eAAe,OAAA;AACf,0GAAA,iBAAiB,OAAA;AACjB,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,uGAAA,cAAc,OAAA;AACd,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AAGZ,yCAA+E;AAAtE,8GAAA,iBAAiB,OAAA;AAAE,0HAAA,6BAA6B,OAAA;AAEzD,yCAQqB;AAPnB,mHAAA,sBAAsB,OAAA;AACtB,qHAAA,wBAAwB,OAAA;AACxB,6HAAA,gCAAgC,OAAA;AAChC,qGAAA,QAAQ,OAAA;AACR,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AACT,wGAAA,WAAW,OAAA;AAGb,iCAMiB;AALf,qGAAA,YAAY,OAAA;AACZ,2GAAA,kBAAkB,OAAA;AAClB,gHAAA,uBAAuB,OAAA;AACvB,sHAAA,6BAA6B,OAAA;AAC7B,2GAAA,kBAAkB,OAAA;AAGpB,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAEnB,2CAgBsB;AAfpB,kHAAA,oBAAoB,OAAA;AACpB,oHAAA,sBAAsB,OAAA;AACtB,oHAAA,sBAAsB,OAAA;AACtB,gHAAA,kBAAkB,OAAA;AAClB,qHAAA,uBAAuB,OAAA;AACvB,wHAAA,0BAA0B,OAAA;AAC1B,4GAAA,cAAc,OAAA;AACd,8GAAA,gBAAgB,OAAA;AAChB,sHAAA,wBAAwB,OAAA;AACxB,oHAAA,sBAAsB,OAAA;AACtB,mHAAA,qBAAqB,OAAA;AACrB,6GAAA,eAAe,OAAA;AACf,+GAAA,iBAAiB,OAAA;AACjB,uHAAA,yBAAyB,OAAA;AACzB,kGAAA,IAAI,OAAA;AAYN,mDAI0B;AAHxB,gHAAA,cAAc,OAAA;AACd,+HAAA,6BAA6B,OAAA;AAC7B,qHAAA,mBAAmB,OAAA"}
package/dist/light.js CHANGED
@@ -89,7 +89,7 @@ async function buildCommitProofContext(rpc, programId, authorityExisting, newCom
89
89
  const authorityReadOnlyMeta = {
90
90
  treeInfo: {
91
91
  rootIndex: proofRes.rootIndices[0],
92
- proveByIndex: true,
92
+ proveByIndex: proofRes.proveByIndices[0],
93
93
  merkleTreePubkeyIndex: authMerkleTreePubkeyIndex,
94
94
  queuePubkeyIndex: authQueuePubkeyIndex,
95
95
  leafIndex: authorityExisting.leafIndex,
@@ -129,7 +129,7 @@ async function buildReadOnlyAuthorityContext(rpc, programId, authorityExisting)
129
129
  const authorityReadOnlyMeta = {
130
130
  treeInfo: {
131
131
  rootIndex: proofRes.rootIndices[0],
132
- proveByIndex: true,
132
+ proveByIndex: proofRes.proveByIndices[0],
133
133
  merkleTreePubkeyIndex: authMerkleTreePubkeyIndex,
134
134
  queuePubkeyIndex: authQueuePubkeyIndex,
135
135
  leafIndex: authorityExisting.leafIndex,
@@ -165,7 +165,7 @@ async function buildMutateContext(rpc, programId, existing) {
165
165
  const accountMeta = {
166
166
  treeInfo: {
167
167
  rootIndex: proofRes.rootIndices[0],
168
- proveByIndex: true,
168
+ proveByIndex: proofRes.proveByIndices[0],
169
169
  merkleTreePubkeyIndex,
170
170
  queuePubkeyIndex,
171
171
  leafIndex: existing.leafIndex,
package/dist/light.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"light.js","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"light.js","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":"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"}
@@ -113,33 +113,94 @@ export interface ProofCommitEvent {
113
113
  onChainCommit: OnChainCommit;
114
114
  }
115
115
  /**
116
- * Fetch all `VrfProofCommitted` events emitted for a given `(owner, label,
117
- * memo)` tuple, ordered oldest → newest. Returns an empty array if none
118
- * exist.
116
+ * Options for {@link findProofCommitEvents} and {@link fetchProofCommitEvents}.
117
+ */
118
+ export interface ProofCommitEventQuery {
119
+ /**
120
+ * Look up exactly this transaction signature instead of scanning the owner's
121
+ * wallet history. This is the ROBUST path: a committer already knows the
122
+ * signature it submitted, so it sidesteps the history-scan failure mode
123
+ * entirely (see {@link ProofCommitEventResult.truncated}). When set, `limit`
124
+ * is ignored.
125
+ */
126
+ signature?: string;
127
+ /**
128
+ * Max number of recent signatures to scan when walking the owner's wallet
129
+ * history (default 1000). Only used when `signature` is not provided.
130
+ *
131
+ * NOTE: this counts ALL of the owner's transactions, not just VRF commits —
132
+ * on a busy mainnet wallet the target commit can fall outside the window, in
133
+ * which case the result is flagged `truncated` rather than silently returning
134
+ * an empty list.
135
+ */
136
+ limit?: number;
137
+ }
138
+ /**
139
+ * Result of {@link findProofCommitEvents}. Unlike a bare event array, this lets
140
+ * a caller distinguish "this memo was never committed" from "I could not
141
+ * confirm it within the scanned window / some transactions were unfetchable".
142
+ */
143
+ export interface ProofCommitEventResult {
144
+ /** Matching events, ordered oldest → newest. */
145
+ events: ProofCommitEvent[];
146
+ /**
147
+ * True if the wallet-history scan hit `limit` before reaching the end of the
148
+ * owner's history. When true, an empty or short `events` list is NOT
149
+ * conclusive — the commit may simply be older than the scanned window.
150
+ * Re-query with a larger `limit`, or (preferably) pass the known `signature`.
151
+ * Always false when `signature` was provided.
152
+ */
153
+ truncated: boolean;
154
+ /**
155
+ * Signatures whose transaction could not be fetched (RPC retention gap or
156
+ * throttling — `getTransaction` returned null or threw). A genuine event may
157
+ * be hiding in one of these, so an empty `events` list is likewise
158
+ * inconclusive when this is non-empty.
159
+ */
160
+ unfetchedSignatures: string[];
161
+ }
162
+ /**
163
+ * Find `VrfProofCommitted` events for a `(owner, label, memo)` tuple, returning
164
+ * a structured result that surfaces scan completeness.
165
+ *
166
+ * Two modes:
167
+ * - Pass `query.signature` to fetch ONE known transaction directly. This is
168
+ * the recommended path for any caller that submitted the commit (it already
169
+ * has the signature) and is immune to the history-scan limit below.
170
+ * - Otherwise the owner's wallet history is paginated (newest → oldest) up to
171
+ * `query.limit` signatures (default 1000). Because this counts every
172
+ * transaction the owner signed — not just VRF commits — a busy mainnet
173
+ * wallet can push the target commit past the window; that case is reported
174
+ * via `truncated: true` instead of an indistinguishable empty array.
119
175
  *
120
- * IMPORTANT: this can return MORE than one row. The on-chain program does
121
- * not enforce uniqueness in event mode. A safe verifier:
176
+ * IMPORTANT: this can return MORE than one event. The on-chain program does not
177
+ * enforce uniqueness in event mode. A safe verifier:
122
178
  *
123
179
  * 1. Collects all matches for the requested memo.
124
180
  * 2. Runs `verifyAuthorityCommitEndToEnd` against each candidate proof.
125
181
  * 3. Accepts the unique row where the ECVRF math passes.
126
182
  *
127
- * Because ECVRF proofs are deterministic for a fixed (pk, alpha), at most
128
- * one of the candidates can have a valid `proof_hash`. The presence of extra
129
- * events is detectable noise, not a successful forgery — but a naive verifier
130
- * that picks "the latest event" without running ECVRF can be misled, which is
131
- * the only soundness gap relative to the PDA path.
183
+ * Because ECVRF proofs are deterministic for a fixed (pk, alpha), at most one
184
+ * candidate can have a valid `proof_hash`. The presence of extra events is
185
+ * detectable noise, not a successful forgery — but a naive verifier that picks
186
+ * "the latest event" without running ECVRF can be misled (see
187
+ * `pickCanonicalCommit`).
132
188
  *
133
189
  * `connection` and `programId` are passed in explicitly so log scanning works
134
- * against a plain Solana RPC. Fetching compressed authority state still needs
135
- * a Photon-capable RPC unless the verifier already has that state.
190
+ * against a plain Solana RPC. Fetching compressed authority state still needs a
191
+ * Photon-capable RPC unless the verifier already has that state.
192
+ */
193
+ export declare function findProofCommitEvents(program: Program, connection: Connection, owner: PublicKey, label: string | Uint8Array, memo: string | Uint8Array, query?: ProofCommitEventQuery): Promise<ProofCommitEventResult>;
194
+ /**
195
+ * Backward-compatible wrapper around {@link findProofCommitEvents} that returns
196
+ * just the events (oldest → newest).
136
197
  *
137
- * `limit` caps how many recent signatures to scan (default 1000); pagination
138
- * happens automatically via `getSignaturesForAddress`'s `before` cursor.
198
+ * Prefer {@link findProofCommitEvents} when you need to tell "not committed"
199
+ * apart from "scan was truncated / some transactions were unfetchable" — on a
200
+ * busy mainnet wallet a bare empty array is ambiguous. Pass `options.signature`
201
+ * to look up a known commit directly and skip the history scan entirely.
139
202
  */
140
- export declare function fetchProofCommitEvents(program: Program, connection: Connection, owner: PublicKey, label: string | Uint8Array, memo: string | Uint8Array, options?: {
141
- limit?: number;
142
- }): Promise<ProofCommitEvent[]>;
203
+ export declare function fetchProofCommitEvents(program: Program, connection: Connection, owner: PublicKey, label: string | Uint8Array, memo: string | Uint8Array, options?: ProofCommitEventQuery): Promise<ProofCommitEvent[]>;
143
204
  /**
144
205
  * Build the commit_proof_with_beta instruction (PDA mode + on-chain beta).
145
206
  * Like buildCommitProofIx, but additionally stores the 64-byte ECVRF beta
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ exports.buildFreezeAuthorityIx = buildFreezeAuthorityIx;
43
43
  exports.buildRevokeAuthorityIx = buildRevokeAuthorityIx;
44
44
  exports.buildCommitProofIx = buildCommitProofIx;
45
45
  exports.buildCommitProofEventIx = buildCommitProofEventIx;
46
+ exports.findProofCommitEvents = findProofCommitEvents;
46
47
  exports.fetchProofCommitEvents = fetchProofCommitEvents;
47
48
  exports.buildCommitProofWithBetaIx = buildCommitProofWithBetaIx;
48
49
  exports.fetchProofCommitWithBeta = fetchProofCommitWithBeta;
@@ -252,91 +253,145 @@ async function buildCommitProofEventIx(program, rpc, input) {
252
253
  return ix;
253
254
  }
254
255
  /**
255
- * Fetch all `VrfProofCommitted` events emitted for a given `(owner, label,
256
- * memo)` tuple, ordered oldest newest. Returns an empty array if none
257
- * exist.
256
+ * Find `VrfProofCommitted` events for a `(owner, label, memo)` tuple, returning
257
+ * a structured result that surfaces scan completeness.
258
258
  *
259
- * IMPORTANT: this can return MORE than one row. The on-chain program does
260
- * not enforce uniqueness in event mode. A safe verifier:
259
+ * Two modes:
260
+ * - Pass `query.signature` to fetch ONE known transaction directly. This is
261
+ * the recommended path for any caller that submitted the commit (it already
262
+ * has the signature) and is immune to the history-scan limit below.
263
+ * - Otherwise the owner's wallet history is paginated (newest → oldest) up to
264
+ * `query.limit` signatures (default 1000). Because this counts every
265
+ * transaction the owner signed — not just VRF commits — a busy mainnet
266
+ * wallet can push the target commit past the window; that case is reported
267
+ * via `truncated: true` instead of an indistinguishable empty array.
268
+ *
269
+ * IMPORTANT: this can return MORE than one event. The on-chain program does not
270
+ * enforce uniqueness in event mode. A safe verifier:
261
271
  *
262
272
  * 1. Collects all matches for the requested memo.
263
273
  * 2. Runs `verifyAuthorityCommitEndToEnd` against each candidate proof.
264
274
  * 3. Accepts the unique row where the ECVRF math passes.
265
275
  *
266
- * Because ECVRF proofs are deterministic for a fixed (pk, alpha), at most
267
- * one of the candidates can have a valid `proof_hash`. The presence of extra
268
- * events is detectable noise, not a successful forgery — but a naive verifier
269
- * that picks "the latest event" without running ECVRF can be misled, which is
270
- * the only soundness gap relative to the PDA path.
276
+ * Because ECVRF proofs are deterministic for a fixed (pk, alpha), at most one
277
+ * candidate can have a valid `proof_hash`. The presence of extra events is
278
+ * detectable noise, not a successful forgery — but a naive verifier that picks
279
+ * "the latest event" without running ECVRF can be misled (see
280
+ * `pickCanonicalCommit`).
271
281
  *
272
282
  * `connection` and `programId` are passed in explicitly so log scanning works
273
- * against a plain Solana RPC. Fetching compressed authority state still needs
274
- * a Photon-capable RPC unless the verifier already has that state.
275
- *
276
- * `limit` caps how many recent signatures to scan (default 1000); pagination
277
- * happens automatically via `getSignaturesForAddress`'s `before` cursor.
283
+ * against a plain Solana RPC. Fetching compressed authority state still needs a
284
+ * Photon-capable RPC unless the verifier already has that state.
278
285
  */
279
- async function fetchProofCommitEvents(program, connection, owner, label, memo, options = {}) {
286
+ async function findProofCommitEvents(program, connection, owner, label, memo, query = {}) {
280
287
  const labelBytes = typeof label === "string" ? (0, addresses_1.encodeLabel)(label) : label;
281
288
  const targetMemoHash = (0, addresses_1.memoHash)(memo);
282
289
  const parser = new anchor_1.EventParser(program.programId, new anchor_1.BorshCoder(program.idl));
283
290
  const out = [];
284
- const limit = options.limit ?? 1000;
291
+ const unfetchedSignatures = [];
292
+ // Fetch a single tx, treating RPC failure (retention gap / throttling returns
293
+ // null or throws) as a recoverable miss rather than crashing the scan.
294
+ const tryGetTx = async (signature) => {
295
+ try {
296
+ return await connection.getTransaction(signature, {
297
+ commitment: "confirmed",
298
+ maxSupportedTransactionVersion: 0,
299
+ });
300
+ }
301
+ catch {
302
+ return null;
303
+ }
304
+ };
305
+ // Extract any matching VrfProofCommitted events from one fetched tx.
306
+ const collectFromTx = (signature, tx) => {
307
+ if (!tx?.meta?.logMessages)
308
+ return;
309
+ for (const ev of parser.parseLogs(tx.meta.logMessages, false)) {
310
+ if (ev.name !== "VrfProofCommitted" && ev.name !== "vrfProofCommitted")
311
+ continue;
312
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
313
+ const data = ev.data;
314
+ const eventOwner = data.owner;
315
+ const eventLabel = Uint8Array.from(data.label);
316
+ const eventMemoHash = Uint8Array.from(data.memoHash);
317
+ if (!eventOwner.equals(owner))
318
+ continue;
319
+ if (!bytesEqual(eventLabel, labelBytes))
320
+ continue;
321
+ if (!bytesEqual(eventMemoHash, targetMemoHash))
322
+ continue;
323
+ const authority = (0, addresses_1.deriveAuthorityAddress)(eventOwner, eventLabel, program.programId);
324
+ out.push({
325
+ owner: eventOwner,
326
+ label: eventLabel,
327
+ txSignature: signature,
328
+ slot: tx.slot,
329
+ onChainCommit: {
330
+ authority,
331
+ memoHash: eventMemoHash,
332
+ proofHash: Uint8Array.from(data.proofHash),
333
+ alphaHash: Uint8Array.from(data.alphaHash),
334
+ committedSlot: BigInt(data.committedSlot.toString()),
335
+ },
336
+ });
337
+ }
338
+ };
339
+ // Direct-by-signature mode: robust, no history scan, never truncated.
340
+ if (query.signature) {
341
+ const tx = await tryGetTx(query.signature);
342
+ if (!tx)
343
+ unfetchedSignatures.push(query.signature);
344
+ else
345
+ collectFromTx(query.signature, tx);
346
+ out.reverse();
347
+ return { events: out, truncated: false, unfetchedSignatures };
348
+ }
349
+ // History-scan mode.
350
+ const limit = query.limit ?? 1000;
285
351
  let before;
286
352
  let scanned = 0;
353
+ let reachedEnd = false;
287
354
  while (scanned < limit) {
288
355
  const pageLimit = Math.min(1000, limit - scanned);
289
356
  const sigInfos = await connection.getSignaturesForAddress(owner, {
290
357
  limit: pageLimit,
291
358
  before,
292
359
  });
293
- if (sigInfos.length === 0)
360
+ if (sigInfos.length === 0) {
361
+ reachedEnd = true;
294
362
  break;
363
+ }
295
364
  scanned += sigInfos.length;
296
365
  before = sigInfos[sigInfos.length - 1].signature;
297
366
  for (const sigInfo of sigInfos) {
298
367
  if (sigInfo.err)
299
368
  continue;
300
- const tx = await connection.getTransaction(sigInfo.signature, {
301
- commitment: "confirmed",
302
- maxSupportedTransactionVersion: 0,
303
- });
304
- if (!tx?.meta?.logMessages)
369
+ const tx = await tryGetTx(sigInfo.signature);
370
+ if (!tx) {
371
+ unfetchedSignatures.push(sigInfo.signature);
305
372
  continue;
306
- for (const ev of parser.parseLogs(tx.meta.logMessages, false)) {
307
- if (ev.name !== "VrfProofCommitted" && ev.name !== "vrfProofCommitted")
308
- continue;
309
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
310
- const data = ev.data;
311
- const eventOwner = data.owner;
312
- const eventLabel = Uint8Array.from(data.label);
313
- const eventMemoHash = Uint8Array.from(data.memoHash);
314
- if (!eventOwner.equals(owner))
315
- continue;
316
- if (!bytesEqual(eventLabel, labelBytes))
317
- continue;
318
- if (!bytesEqual(eventMemoHash, targetMemoHash))
319
- continue;
320
- const authority = (0, addresses_1.deriveAuthorityAddress)(eventOwner, eventLabel, program.programId);
321
- out.push({
322
- owner: eventOwner,
323
- label: eventLabel,
324
- txSignature: sigInfo.signature,
325
- slot: tx.slot,
326
- onChainCommit: {
327
- authority,
328
- memoHash: eventMemoHash,
329
- proofHash: Uint8Array.from(data.proofHash),
330
- alphaHash: Uint8Array.from(data.alphaHash),
331
- committedSlot: BigInt(data.committedSlot.toString()),
332
- },
333
- });
334
373
  }
374
+ collectFromTx(sigInfo.signature, tx);
335
375
  }
336
376
  }
337
377
  // RPC returns newest first — reverse so oldest comes first.
338
378
  out.reverse();
339
- return out;
379
+ // If we exited because the cap was hit (not because history ran out), the
380
+ // result is incomplete: a missing event here is inconclusive, not "absent".
381
+ return { events: out, truncated: !reachedEnd, unfetchedSignatures };
382
+ }
383
+ /**
384
+ * Backward-compatible wrapper around {@link findProofCommitEvents} that returns
385
+ * just the events (oldest → newest).
386
+ *
387
+ * Prefer {@link findProofCommitEvents} when you need to tell "not committed"
388
+ * apart from "scan was truncated / some transactions were unfetchable" — on a
389
+ * busy mainnet wallet a bare empty array is ambiguous. Pass `options.signature`
390
+ * to look up a known commit directly and skip the history scan entirely.
391
+ */
392
+ async function fetchProofCommitEvents(program, connection, owner, label, memo, options = {}) {
393
+ const { events } = await findProofCommitEvents(program, connection, owner, label, memo, options);
394
+ return events;
340
395
  }
341
396
  function bytesEqual(a, b) {
342
397
  if (a.length !== b.length)
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@collectorcrypt/vrf-client",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "TypeScript SDK for the cc-vrf on-chain VRF program (Solana + Light Protocol)",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -50,6 +50,7 @@ export {
50
50
  fetchProofCommit,
51
51
  fetchProofCommitWithBeta,
52
52
  fetchProofCommitEvents,
53
+ findProofCommitEvents,
53
54
  decodeAuthority,
54
55
  decodeProofCommit,
55
56
  decodeProofCommitWithBeta,
@@ -61,6 +62,8 @@ export type {
61
62
  FreezeAuthorityInput,
62
63
  CommitProofInput,
63
64
  ProofCommitEvent,
65
+ ProofCommitEventQuery,
66
+ ProofCommitEventResult,
64
67
  } from "./operations";
65
68
 
66
69
  export {
package/src/light.ts CHANGED
@@ -130,7 +130,7 @@ export async function buildCommitProofContext(
130
130
  const authorityReadOnlyMeta = {
131
131
  treeInfo: {
132
132
  rootIndex: proofRes.rootIndices[0],
133
- proveByIndex: true,
133
+ proveByIndex: proofRes.proveByIndices[0],
134
134
  merkleTreePubkeyIndex: authMerkleTreePubkeyIndex,
135
135
  queuePubkeyIndex: authQueuePubkeyIndex,
136
136
  leafIndex: authorityExisting.leafIndex,
@@ -187,7 +187,7 @@ export async function buildReadOnlyAuthorityContext(
187
187
  const authorityReadOnlyMeta = {
188
188
  treeInfo: {
189
189
  rootIndex: proofRes.rootIndices[0],
190
- proveByIndex: true,
190
+ proveByIndex: proofRes.proveByIndices[0],
191
191
  merkleTreePubkeyIndex: authMerkleTreePubkeyIndex,
192
192
  queuePubkeyIndex: authQueuePubkeyIndex,
193
193
  leafIndex: authorityExisting.leafIndex,
@@ -242,7 +242,7 @@ export async function buildMutateContext(
242
242
  const accountMeta = {
243
243
  treeInfo: {
244
244
  rootIndex: proofRes.rootIndices[0],
245
- proveByIndex: true,
245
+ proveByIndex: proofRes.proveByIndices[0],
246
246
  merkleTreePubkeyIndex,
247
247
  queuePubkeyIndex,
248
248
  leafIndex: existing.leafIndex,
package/src/operations.ts CHANGED
@@ -427,38 +427,93 @@ export interface ProofCommitEvent {
427
427
  }
428
428
 
429
429
  /**
430
- * Fetch all `VrfProofCommitted` events emitted for a given `(owner, label,
431
- * memo)` tuple, ordered oldest → newest. Returns an empty array if none
432
- * exist.
430
+ * Options for {@link findProofCommitEvents} and {@link fetchProofCommitEvents}.
431
+ */
432
+ export interface ProofCommitEventQuery {
433
+ /**
434
+ * Look up exactly this transaction signature instead of scanning the owner's
435
+ * wallet history. This is the ROBUST path: a committer already knows the
436
+ * signature it submitted, so it sidesteps the history-scan failure mode
437
+ * entirely (see {@link ProofCommitEventResult.truncated}). When set, `limit`
438
+ * is ignored.
439
+ */
440
+ signature?: string;
441
+ /**
442
+ * Max number of recent signatures to scan when walking the owner's wallet
443
+ * history (default 1000). Only used when `signature` is not provided.
444
+ *
445
+ * NOTE: this counts ALL of the owner's transactions, not just VRF commits —
446
+ * on a busy mainnet wallet the target commit can fall outside the window, in
447
+ * which case the result is flagged `truncated` rather than silently returning
448
+ * an empty list.
449
+ */
450
+ limit?: number;
451
+ }
452
+
453
+ /**
454
+ * Result of {@link findProofCommitEvents}. Unlike a bare event array, this lets
455
+ * a caller distinguish "this memo was never committed" from "I could not
456
+ * confirm it within the scanned window / some transactions were unfetchable".
457
+ */
458
+ export interface ProofCommitEventResult {
459
+ /** Matching events, ordered oldest → newest. */
460
+ events: ProofCommitEvent[];
461
+ /**
462
+ * True if the wallet-history scan hit `limit` before reaching the end of the
463
+ * owner's history. When true, an empty or short `events` list is NOT
464
+ * conclusive — the commit may simply be older than the scanned window.
465
+ * Re-query with a larger `limit`, or (preferably) pass the known `signature`.
466
+ * Always false when `signature` was provided.
467
+ */
468
+ truncated: boolean;
469
+ /**
470
+ * Signatures whose transaction could not be fetched (RPC retention gap or
471
+ * throttling — `getTransaction` returned null or threw). A genuine event may
472
+ * be hiding in one of these, so an empty `events` list is likewise
473
+ * inconclusive when this is non-empty.
474
+ */
475
+ unfetchedSignatures: string[];
476
+ }
477
+
478
+ /**
479
+ * Find `VrfProofCommitted` events for a `(owner, label, memo)` tuple, returning
480
+ * a structured result that surfaces scan completeness.
481
+ *
482
+ * Two modes:
483
+ * - Pass `query.signature` to fetch ONE known transaction directly. This is
484
+ * the recommended path for any caller that submitted the commit (it already
485
+ * has the signature) and is immune to the history-scan limit below.
486
+ * - Otherwise the owner's wallet history is paginated (newest → oldest) up to
487
+ * `query.limit` signatures (default 1000). Because this counts every
488
+ * transaction the owner signed — not just VRF commits — a busy mainnet
489
+ * wallet can push the target commit past the window; that case is reported
490
+ * via `truncated: true` instead of an indistinguishable empty array.
433
491
  *
434
- * IMPORTANT: this can return MORE than one row. The on-chain program does
435
- * not enforce uniqueness in event mode. A safe verifier:
492
+ * IMPORTANT: this can return MORE than one event. The on-chain program does not
493
+ * enforce uniqueness in event mode. A safe verifier:
436
494
  *
437
495
  * 1. Collects all matches for the requested memo.
438
496
  * 2. Runs `verifyAuthorityCommitEndToEnd` against each candidate proof.
439
497
  * 3. Accepts the unique row where the ECVRF math passes.
440
498
  *
441
- * Because ECVRF proofs are deterministic for a fixed (pk, alpha), at most
442
- * one of the candidates can have a valid `proof_hash`. The presence of extra
443
- * events is detectable noise, not a successful forgery — but a naive verifier
444
- * that picks "the latest event" without running ECVRF can be misled, which is
445
- * the only soundness gap relative to the PDA path.
499
+ * Because ECVRF proofs are deterministic for a fixed (pk, alpha), at most one
500
+ * candidate can have a valid `proof_hash`. The presence of extra events is
501
+ * detectable noise, not a successful forgery — but a naive verifier that picks
502
+ * "the latest event" without running ECVRF can be misled (see
503
+ * `pickCanonicalCommit`).
446
504
  *
447
505
  * `connection` and `programId` are passed in explicitly so log scanning works
448
- * against a plain Solana RPC. Fetching compressed authority state still needs
449
- * a Photon-capable RPC unless the verifier already has that state.
450
- *
451
- * `limit` caps how many recent signatures to scan (default 1000); pagination
452
- * happens automatically via `getSignaturesForAddress`'s `before` cursor.
506
+ * against a plain Solana RPC. Fetching compressed authority state still needs a
507
+ * Photon-capable RPC unless the verifier already has that state.
453
508
  */
454
- export async function fetchProofCommitEvents(
509
+ export async function findProofCommitEvents(
455
510
  program: Program,
456
511
  connection: Connection,
457
512
  owner: PublicKey,
458
513
  label: string | Uint8Array,
459
514
  memo: string | Uint8Array,
460
- options: { limit?: number } = {},
461
- ): Promise<ProofCommitEvent[]> {
515
+ query: ProofCommitEventQuery = {},
516
+ ): Promise<ProofCommitEventResult> {
462
517
  const labelBytes = typeof label === "string" ? encodeLabel(label) : label;
463
518
  const targetMemoHash = memoHashFn(memo);
464
519
 
@@ -467,66 +522,132 @@ export async function fetchProofCommitEvents(
467
522
  new BorshCoder(program.idl),
468
523
  );
469
524
  const out: ProofCommitEvent[] = [];
525
+ const unfetchedSignatures: string[] = [];
526
+
527
+ // Fetch a single tx, treating RPC failure (retention gap / throttling returns
528
+ // null or throws) as a recoverable miss rather than crashing the scan.
529
+ const tryGetTx = async (signature: string) => {
530
+ try {
531
+ return await connection.getTransaction(signature, {
532
+ commitment: "confirmed",
533
+ maxSupportedTransactionVersion: 0,
534
+ });
535
+ } catch {
536
+ return null;
537
+ }
538
+ };
539
+
540
+ // Extract any matching VrfProofCommitted events from one fetched tx.
541
+ const collectFromTx = (
542
+ signature: string,
543
+ tx: Awaited<ReturnType<typeof tryGetTx>>,
544
+ ) => {
545
+ if (!tx?.meta?.logMessages) return;
546
+ for (const ev of parser.parseLogs(tx.meta.logMessages, false)) {
547
+ if (ev.name !== "VrfProofCommitted" && ev.name !== "vrfProofCommitted")
548
+ continue;
549
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
550
+ const data = ev.data as any;
551
+ const eventOwner: PublicKey = data.owner;
552
+ const eventLabel: Uint8Array = Uint8Array.from(data.label);
553
+ const eventMemoHash: Uint8Array = Uint8Array.from(data.memoHash);
554
+
555
+ if (!eventOwner.equals(owner)) continue;
556
+ if (!bytesEqual(eventLabel, labelBytes)) continue;
557
+ if (!bytesEqual(eventMemoHash, targetMemoHash)) continue;
558
+
559
+ const authority = deriveAuthorityAddress(
560
+ eventOwner,
561
+ eventLabel,
562
+ program.programId,
563
+ );
564
+ out.push({
565
+ owner: eventOwner,
566
+ label: eventLabel,
567
+ txSignature: signature,
568
+ slot: tx.slot,
569
+ onChainCommit: {
570
+ authority,
571
+ memoHash: eventMemoHash,
572
+ proofHash: Uint8Array.from(data.proofHash),
573
+ alphaHash: Uint8Array.from(data.alphaHash),
574
+ committedSlot: BigInt(data.committedSlot.toString()),
575
+ },
576
+ });
577
+ }
578
+ };
470
579
 
471
- const limit = options.limit ?? 1000;
580
+ // Direct-by-signature mode: robust, no history scan, never truncated.
581
+ if (query.signature) {
582
+ const tx = await tryGetTx(query.signature);
583
+ if (!tx) unfetchedSignatures.push(query.signature);
584
+ else collectFromTx(query.signature, tx);
585
+ out.reverse();
586
+ return { events: out, truncated: false, unfetchedSignatures };
587
+ }
588
+
589
+ // History-scan mode.
590
+ const limit = query.limit ?? 1000;
472
591
  let before: string | undefined;
473
592
  let scanned = 0;
593
+ let reachedEnd = false;
474
594
  while (scanned < limit) {
475
595
  const pageLimit = Math.min(1000, limit - scanned);
476
596
  const sigInfos = await connection.getSignaturesForAddress(owner, {
477
597
  limit: pageLimit,
478
598
  before,
479
599
  });
480
- if (sigInfos.length === 0) break;
600
+ if (sigInfos.length === 0) {
601
+ reachedEnd = true;
602
+ break;
603
+ }
481
604
  scanned += sigInfos.length;
482
605
  before = sigInfos[sigInfos.length - 1].signature;
483
606
 
484
607
  for (const sigInfo of sigInfos) {
485
608
  if (sigInfo.err) continue;
486
- const tx = await connection.getTransaction(sigInfo.signature, {
487
- commitment: "confirmed",
488
- maxSupportedTransactionVersion: 0,
489
- });
490
- if (!tx?.meta?.logMessages) continue;
491
-
492
- for (const ev of parser.parseLogs(tx.meta.logMessages, false)) {
493
- if (ev.name !== "VrfProofCommitted" && ev.name !== "vrfProofCommitted")
494
- continue;
495
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
496
- const data = ev.data as any;
497
- const eventOwner: PublicKey = data.owner;
498
- const eventLabel: Uint8Array = Uint8Array.from(data.label);
499
- const eventMemoHash: Uint8Array = Uint8Array.from(data.memoHash);
500
-
501
- if (!eventOwner.equals(owner)) continue;
502
- if (!bytesEqual(eventLabel, labelBytes)) continue;
503
- if (!bytesEqual(eventMemoHash, targetMemoHash)) continue;
504
-
505
- const authority = deriveAuthorityAddress(
506
- eventOwner,
507
- eventLabel,
508
- program.programId,
509
- );
510
- out.push({
511
- owner: eventOwner,
512
- label: eventLabel,
513
- txSignature: sigInfo.signature,
514
- slot: tx.slot,
515
- onChainCommit: {
516
- authority,
517
- memoHash: eventMemoHash,
518
- proofHash: Uint8Array.from(data.proofHash),
519
- alphaHash: Uint8Array.from(data.alphaHash),
520
- committedSlot: BigInt(data.committedSlot.toString()),
521
- },
522
- });
609
+ const tx = await tryGetTx(sigInfo.signature);
610
+ if (!tx) {
611
+ unfetchedSignatures.push(sigInfo.signature);
612
+ continue;
523
613
  }
614
+ collectFromTx(sigInfo.signature, tx);
524
615
  }
525
616
  }
526
617
 
527
618
  // RPC returns newest first — reverse so oldest comes first.
528
619
  out.reverse();
529
- return out;
620
+ // If we exited because the cap was hit (not because history ran out), the
621
+ // result is incomplete: a missing event here is inconclusive, not "absent".
622
+ return { events: out, truncated: !reachedEnd, unfetchedSignatures };
623
+ }
624
+
625
+ /**
626
+ * Backward-compatible wrapper around {@link findProofCommitEvents} that returns
627
+ * just the events (oldest → newest).
628
+ *
629
+ * Prefer {@link findProofCommitEvents} when you need to tell "not committed"
630
+ * apart from "scan was truncated / some transactions were unfetchable" — on a
631
+ * busy mainnet wallet a bare empty array is ambiguous. Pass `options.signature`
632
+ * to look up a known commit directly and skip the history scan entirely.
633
+ */
634
+ export async function fetchProofCommitEvents(
635
+ program: Program,
636
+ connection: Connection,
637
+ owner: PublicKey,
638
+ label: string | Uint8Array,
639
+ memo: string | Uint8Array,
640
+ options: ProofCommitEventQuery = {},
641
+ ): Promise<ProofCommitEvent[]> {
642
+ const { events } = await findProofCommitEvents(
643
+ program,
644
+ connection,
645
+ owner,
646
+ label,
647
+ memo,
648
+ options,
649
+ );
650
+ return events;
530
651
  }
531
652
 
532
653
  function bytesEqual(a: Uint8Array, b: Uint8Array): boolean {