@provablehq/sdk 0.9.16-rc → 0.9.16

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.
Files changed (65) hide show
  1. package/dist/mainnet/account.d.ts +18 -3
  2. package/dist/mainnet/browser.d.ts +20 -8
  3. package/dist/mainnet/browser.js +997 -266
  4. package/dist/mainnet/browser.js.map +1 -1
  5. package/dist/{testnet/keys/provider → mainnet}/function-key-provider.d.ts +15 -23
  6. package/dist/mainnet/models/cryptoBoxPubkey.d.ts +4 -0
  7. package/dist/mainnet/models/encryptedProvingRequest.d.ts +4 -0
  8. package/dist/mainnet/models/provingResponse.d.ts +48 -2
  9. package/dist/mainnet/models/record-scanner/encryptedRecordsResult.d.ts +7 -0
  10. package/dist/mainnet/models/record-scanner/encryptedRegistrationRequest.d.ts +8 -0
  11. package/dist/mainnet/models/record-scanner/error.d.ts +47 -0
  12. package/dist/mainnet/models/record-scanner/ownedFilter.d.ts +0 -2
  13. package/dist/mainnet/models/record-scanner/ownedRecordsResult.d.ts +13 -0
  14. package/dist/mainnet/models/record-scanner/registrationResponse.d.ts +0 -2
  15. package/dist/mainnet/models/record-scanner/registrationResult.d.ts +9 -0
  16. package/dist/mainnet/models/record-scanner/serialNumbersResult.d.ts +15 -0
  17. package/dist/mainnet/models/record-scanner/statusResult.d.ts +13 -0
  18. package/dist/mainnet/models/record-scanner/tagsResult.d.ts +12 -0
  19. package/dist/mainnet/network-client.d.ts +81 -35
  20. package/dist/mainnet/node.d.ts +0 -1
  21. package/dist/mainnet/node.js +2 -129
  22. package/dist/mainnet/node.js.map +1 -1
  23. package/dist/mainnet/{keys/provider/offline-key-provider.d.ts → offline-key-provider.d.ts} +3 -6
  24. package/dist/mainnet/program-manager.d.ts +53 -48
  25. package/dist/mainnet/record-provider.d.ts +7 -7
  26. package/dist/mainnet/record-scanner.d.ts +231 -31
  27. package/dist/mainnet/security.d.ts +38 -0
  28. package/dist/mainnet/utils.d.ts +1 -0
  29. package/dist/testnet/account.d.ts +18 -3
  30. package/dist/testnet/browser.d.ts +20 -8
  31. package/dist/testnet/browser.js +997 -266
  32. package/dist/testnet/browser.js.map +1 -1
  33. package/dist/{mainnet/keys/provider → testnet}/function-key-provider.d.ts +15 -23
  34. package/dist/testnet/models/cryptoBoxPubkey.d.ts +4 -0
  35. package/dist/testnet/models/encryptedProvingRequest.d.ts +4 -0
  36. package/dist/testnet/models/provingResponse.d.ts +48 -2
  37. package/dist/testnet/models/record-scanner/encryptedRecordsResult.d.ts +7 -0
  38. package/dist/testnet/models/record-scanner/encryptedRegistrationRequest.d.ts +8 -0
  39. package/dist/testnet/models/record-scanner/error.d.ts +47 -0
  40. package/dist/testnet/models/record-scanner/ownedFilter.d.ts +0 -2
  41. package/dist/testnet/models/record-scanner/ownedRecordsResult.d.ts +13 -0
  42. package/dist/testnet/models/record-scanner/registrationResponse.d.ts +0 -2
  43. package/dist/testnet/models/record-scanner/registrationResult.d.ts +9 -0
  44. package/dist/testnet/models/record-scanner/serialNumbersResult.d.ts +15 -0
  45. package/dist/testnet/models/record-scanner/statusResult.d.ts +13 -0
  46. package/dist/testnet/models/record-scanner/tagsResult.d.ts +12 -0
  47. package/dist/testnet/network-client.d.ts +81 -35
  48. package/dist/testnet/node.d.ts +0 -1
  49. package/dist/testnet/node.js +2 -129
  50. package/dist/testnet/node.js.map +1 -1
  51. package/dist/testnet/{keys/provider/offline-key-provider.d.ts → offline-key-provider.d.ts} +3 -6
  52. package/dist/testnet/program-manager.d.ts +53 -48
  53. package/dist/testnet/record-provider.d.ts +7 -7
  54. package/dist/testnet/record-scanner.d.ts +231 -31
  55. package/dist/testnet/security.d.ts +38 -0
  56. package/dist/testnet/utils.d.ts +1 -0
  57. package/package.json +3 -2
  58. package/dist/mainnet/keys/keystore/file.d.ts +0 -23
  59. package/dist/mainnet/keys/keystore/keystore.d.ts +0 -81
  60. package/dist/mainnet/keys/keystore/memory.d.ts +0 -8
  61. package/dist/mainnet/models/keyPair.d.ts +0 -4
  62. package/dist/testnet/keys/keystore/file.d.ts +0 -23
  63. package/dist/testnet/keys/keystore/keystore.d.ts +0 -81
  64. package/dist/testnet/keys/keystore/memory.d.ts +0 -8
  65. package/dist/testnet/models/keyPair.d.ts +0 -4
@@ -1,7 +1,7 @@
1
- import { Key } from "../../constants";
2
- import { CachedKeyPair, FunctionKeyPair } from "../../models/keyPair";
3
- import { KeyStore } from "../keystore/keystore";
4
- import { ProvingKey, VerifyingKey } from "../../wasm";
1
+ import { Key } from "./constants.js";
2
+ import { ProvingKey, VerifyingKey } from "./wasm.js";
3
+ type FunctionKeyPair = [ProvingKey, VerifyingKey];
4
+ type CachedKeyPair = [Uint8Array, Uint8Array];
5
5
  type AleoKeyProviderInitParams = {
6
6
  proverUri?: string;
7
7
  verifierUri?: string;
@@ -122,11 +122,11 @@ interface FunctionKeyProvider {
122
122
  *
123
123
  *
124
124
  * const keyProvider = new AleoKeyProvider();
125
- * const networkClient = new AleoNetworkClient("https://api.explorer.provable.com/v1");
125
+ * const networkClient = new AleoNetworkClient("https://api.provable.com/v2");
126
126
  * const recordProvider = new NetworkRecordProvider(account, networkClient);
127
127
  *
128
128
  * // Initialize a program manager with the key provider to automatically fetch keys for value transfers
129
- * const programManager = new ProgramManager("https://api.explorer.provable.com/v1", keyProvider, recordProvider);
129
+ * const programManager = new ProgramManager("https://api.provable.com/v2", keyProvider, recordProvider);
130
130
  * programManager.transfer(1, "aleo166q6ww6688cug7qxwe7nhctjpymydwzy2h7rscfmatqmfwnjvggqcad0at", "public", 0.5);
131
131
  *
132
132
  * // Keys can also be fetched manually
@@ -134,13 +134,6 @@ interface FunctionKeyProvider {
134
134
  * const [transferPrivateProvingKey, transferPrivateVerifyingKey] = await keyProvider.functionKeys(searchParams);
135
135
  */
136
136
  functionKeys(params?: KeySearchParams): Promise<FunctionKeyPair>;
137
- /**
138
- * Gets an object which implements the `KeyStore` interface key store object for accessing proving and verifying
139
- * keys directly from persistent storage.
140
- *
141
- * @return {KeyStore}
142
- */
143
- keyStore(): Promise<KeyStore | undefined>;
144
137
  /**
145
138
  * Get fee_private function keys from the credits.aleo program
146
139
  *
@@ -179,12 +172,12 @@ interface FunctionKeyProvider {
179
172
  *
180
173
  * @example
181
174
  * // Create a new object which implements the KeyProvider interface
182
- * const networkClient = new AleoNetworkClient("https://api.explorer.provable.com/v1");
175
+ * const networkClient = new AleoNetworkClient("https://api.provable.com/v2");
183
176
  * const keyProvider = new AleoKeyProvider();
184
177
  * const recordProvider = new NetworkRecordProvider(account, networkClient);
185
178
  *
186
179
  * // Initialize a program manager with the key provider to automatically fetch keys for value transfers
187
- * const programManager = new ProgramManager("https://api.explorer.provable.com/v1", keyProvider, recordProvider);
180
+ * const programManager = new ProgramManager("https://api.provable.com/v2", keyProvider, recordProvider);
188
181
  * programManager.transfer(1, "aleo166q6ww6688cug7qxwe7nhctjpymydwzy2h7rscfmatqmfwnjvggqcad0at", "public", 0.5);
189
182
  *
190
183
  * // Keys can also be fetched manually
@@ -209,7 +202,6 @@ declare class AleoKeyProvider implements FunctionKeyProvider {
209
202
  keyUris: string;
210
203
  fetchBytes(url?: string): Promise<Uint8Array>;
211
204
  constructor();
212
- keyStore(): Promise<KeyStore | undefined>;
213
205
  /**
214
206
  * Use local memory to store keys
215
207
  *
@@ -257,12 +249,12 @@ declare class AleoKeyProvider implements FunctionKeyProvider {
257
249
  *
258
250
  * @example
259
251
  * // Create a new object which implements the KeyProvider interface
260
- * const networkClient = new AleoNetworkClient("https://api.explorer.provable.com/v1");
252
+ * const networkClient = new AleoNetworkClient("https://api.provable.com/v2");
261
253
  * const keyProvider = new AleoKeyProvider();
262
254
  * const recordProvider = new NetworkRecordProvider(account, networkClient);
263
255
  *
264
256
  * // Initialize a program manager with the key provider to automatically fetch keys for value transfers
265
- * const programManager = new ProgramManager("https://api.explorer.provable.com/v1", keyProvider, recordProvider);
257
+ * const programManager = new ProgramManager("https://api.provable.com/v2", keyProvider, recordProvider);
266
258
  * programManager.transfer(1, "aleo166q6ww6688cug7qxwe7nhctjpymydwzy2h7rscfmatqmfwnjvggqcad0at", "public", 0.5);
267
259
  *
268
260
  * // Keys can also be fetched manually using the key provider
@@ -281,12 +273,12 @@ declare class AleoKeyProvider implements FunctionKeyProvider {
281
273
  *
282
274
  * @example
283
275
  * // Create a new AleoKeyProvider object
284
- * const networkClient = new AleoNetworkClient("https://api.explorer.provable.com/v1");
276
+ * const networkClient = new AleoNetworkClient("https://api.provable.com/v2");
285
277
  * const keyProvider = new AleoKeyProvider();
286
278
  * const recordProvider = new NetworkRecordProvider(account, networkClient);
287
279
  *
288
280
  * // Initialize a program manager with the key provider to automatically fetch keys for value transfers
289
- * const programManager = new ProgramManager("https://api.explorer.provable.com/v1", keyProvider, recordProvider);
281
+ * const programManager = new ProgramManager("https://api.provable.com/v2", keyProvider, recordProvider);
290
282
  * programManager.transfer(1, "aleo166q6ww6688cug7qxwe7nhctjpymydwzy2h7rscfmatqmfwnjvggqcad0at", "public", 0.5);
291
283
  *
292
284
  * // Keys can also be fetched manually
@@ -316,12 +308,12 @@ declare class AleoKeyProvider implements FunctionKeyProvider {
316
308
  *
317
309
  * @example
318
310
  * // Create a new AleoKeyProvider
319
- * const networkClient = new AleoNetworkClient("https://api.explorer.provable.com/v1");
311
+ * const networkClient = new AleoNetworkClient("https://api.provable.com/v2");
320
312
  * const keyProvider = new AleoKeyProvider();
321
313
  * const recordProvider = new NetworkRecordProvider(account, networkClient);
322
314
  *
323
315
  * // Initialize a program manager with the key provider to automatically fetch keys for value transfers
324
- * const programManager = new ProgramManager("https://api.explorer.provable.com/v1", keyProvider, recordProvider);
316
+ * const programManager = new ProgramManager("https://api.provable.com/v2", keyProvider, recordProvider);
325
317
  * programManager.transfer(1, "aleo166q6ww6688cug7qxwe7nhctjpymydwzy2h7rscfmatqmfwnjvggqcad0at", "public", 0.5);
326
318
  *
327
319
  * // Keys can also be fetched manually
@@ -372,4 +364,4 @@ declare class AleoKeyProvider implements FunctionKeyProvider {
372
364
  getVerifyingKey(verifierUri: string): Promise<VerifyingKey>;
373
365
  unBondPublicKeys(): Promise<FunctionKeyPair>;
374
366
  }
375
- export { AleoKeyProvider, AleoKeyProviderParams, AleoKeyProviderInitParams, FunctionKeyProvider, KeySearchParams };
367
+ export { AleoKeyProvider, AleoKeyProviderParams, AleoKeyProviderInitParams, CachedKeyPair, FunctionKeyPair, FunctionKeyProvider, KeySearchParams };
@@ -0,0 +1,4 @@
1
+ export interface CryptoBoxPubKey {
2
+ key_id: string;
3
+ public_key: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ export interface EncryptedProvingRequest {
2
+ key_id: string;
3
+ ciphertext: string;
4
+ }
@@ -1,5 +1,51 @@
1
- import { TransactionJSON } from "./transaction/transactionJSON";
1
+ import { TransactionJSON } from "./transaction/transactionJSON.js";
2
+ /** HTTP status and optional message from snarkOS broadcast (Accepted/Rejected variants). */
3
+ export interface BroadcastResponse {
4
+ status_code: bigint | number;
5
+ message?: string;
6
+ }
7
+ /** Result of the optional broadcast step. Discriminated by `status`. */
8
+ export type BroadcastResult = {
9
+ status: "Accepted";
10
+ status_code: bigint | number;
11
+ message?: string;
12
+ } | {
13
+ status: "Rejected";
14
+ status_code: bigint | number;
15
+ message?: string;
16
+ } | {
17
+ status: "Failed";
18
+ message: string;
19
+ } | {
20
+ status: "Skipped";
21
+ };
22
+ /** Success response body for POST /prove (HTTP 200). */
2
23
  export interface ProvingResponse {
3
24
  transaction: TransactionJSON;
4
- broadcast?: boolean;
25
+ broadcast_result: BroadcastResult;
26
+ }
27
+ /** Error response body for POST /prove (HTTP 400, 500, 503). Same shape for all error cases. */
28
+ export interface ProveApiErrorBody {
29
+ message: string;
30
+ }
31
+ /** Error thrown on prove API failure; `status` is set for retry logic (e.g. retryWithBackoff checks error.status >= 500). */
32
+ export interface ProvingRequestError extends Error {
33
+ status?: number;
34
+ }
35
+ /** Success variant of a proving request result. */
36
+ export interface ProvingSuccess {
37
+ ok: true;
38
+ data: ProvingResponse;
39
+ }
40
+ /** Failure variant of a proving request result (HTTP 400, 500, 503). */
41
+ export interface ProvingFailure {
42
+ ok: false;
43
+ status: number;
44
+ error: ProveApiErrorBody;
5
45
  }
46
+ /** Result of a proving request. Type used to give callers the ability to self-handle errors. */
47
+ export type ProvingResult = ProvingSuccess | ProvingFailure;
48
+ /** Type guard: value is a ProvingResponse. */
49
+ export declare function isProvingResponse(value: unknown): value is ProvingResponse;
50
+ /** Type guard: value is a ProveApiErrorBody. */
51
+ export declare function isProveApiErrorBody(value: unknown): value is ProveApiErrorBody;
@@ -0,0 +1,7 @@
1
+ import type { RecordScannerFailure } from "./error.js";
2
+ import type { EncryptedRecord } from "../record-provider/encryptedRecord.js";
3
+ export interface EncryptedRecordsSuccess {
4
+ ok: true;
5
+ data: EncryptedRecord[];
6
+ }
7
+ export type EncryptedRecordsResult = EncryptedRecordsSuccess | RecordScannerFailure;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Payload for the /register/encrypted record scanner endpoint.
3
+ * Contains the ephemeral key id and the sealed ciphertext of the registration request.
4
+ */
5
+ export interface EncryptedRegistrationRequest {
6
+ key_id: string;
7
+ ciphertext: string;
8
+ }
@@ -0,0 +1,47 @@
1
+ import { OwnedFilter } from "./ownedFilter";
2
+ /**
3
+ * Error thrown when a record scanner request fails (e.g. /register, /register/encrypted).
4
+ * Includes HTTP status so callers can handle 422 vs 500 etc.
5
+ */
6
+ export declare class RecordScannerRequestError extends Error {
7
+ readonly status: number;
8
+ constructor(message: string, status: number);
9
+ }
10
+ /** Error thrown when findCreditsRecord or findCreditsRecords is called but decryption is not enabled on the record scanner. */
11
+ export declare class DecryptionNotEnabledError extends Error {
12
+ readonly filter?: OwnedFilter;
13
+ constructor(message: string, filter?: OwnedFilter);
14
+ }
15
+ /** Error thrown when findCreditsRecord or findCreditsRecords is called but no view key for the UUID is stored in viewKeys or the account. */
16
+ export declare class ViewKeyNotStoredError extends Error {
17
+ readonly uuid?: string;
18
+ readonly filter?: OwnedFilter;
19
+ constructor(message: string, uuid?: string, filter?: OwnedFilter);
20
+ }
21
+ /** Error thrown when no record matches the supplied search filter (e.g. findCreditsRecord / findCreditsRecords). */
22
+ export declare class RecordNotFoundError extends Error {
23
+ readonly filter?: OwnedFilter;
24
+ constructor(message: string, filter?: OwnedFilter);
25
+ }
26
+ /** Error thrown when a record scanner request fails due to an invalid response. */
27
+ export declare class UUIDError extends Error {
28
+ readonly uuid?: string;
29
+ readonly filter?: OwnedFilter;
30
+ constructor(message: string, uuid?: string, filter?: OwnedFilter);
31
+ }
32
+ /** General error payload returned from record-scanner endpoints on failure. */
33
+ export interface RecordScannerErrorBody {
34
+ /** Raw error text returned by the service. */
35
+ message: string;
36
+ /** HTTP status code from the response. */
37
+ status: number;
38
+ }
39
+ /**
40
+ * Failure variant shared by record-scanner result types.
41
+ * Use with a success interface to form a discriminated union (e.g. Success | RecordScannerFailure).
42
+ */
43
+ export interface RecordScannerFailure {
44
+ ok: false;
45
+ status: number;
46
+ error: RecordScannerErrorBody;
47
+ }
@@ -8,7 +8,6 @@ import { OwnedRecordsResponseFilter } from "./ownedRecordsResponseFilter";
8
8
  * const ownedFilter: OwnedFilter = {
9
9
  * unspent: true,
10
10
  * nonces: ["3077450429259593211617823051143573281856129402760267155982965992208217472983group"],
11
- * decrypt: true,
12
11
  * filter: {
13
12
  * program: "credits.aleo",
14
13
  * record: "credits",
@@ -16,7 +15,6 @@ import { OwnedRecordsResponseFilter } from "./ownedRecordsResponseFilter";
16
15
  * }
17
16
  */
18
17
  export interface OwnedFilter extends RecordSearchParams {
19
- decrypt?: boolean;
20
18
  filter?: RecordsFilter;
21
19
  responseFilter?: OwnedRecordsResponseFilter;
22
20
  unspent?: boolean;
@@ -0,0 +1,13 @@
1
+ import type { RecordScannerFailure } from "./error.js";
2
+ import type { OwnedRecord } from "../record-provider/ownedRecord.js";
3
+ /**
4
+ * Success variant of ownedRecords() result.
5
+ *
6
+ * @property ok - Whether the request was successful, always true for this interface variant.
7
+ * @property data - List of owned records corresponding to the filter used.
8
+ */
9
+ export interface OwnedRecordsSuccess {
10
+ ok: true;
11
+ data: OwnedRecord[];
12
+ }
13
+ export type OwnedRecordsResult = OwnedRecordsSuccess | RecordScannerFailure;
@@ -4,12 +4,10 @@
4
4
  * @example
5
5
  * const registrationResponse: RegistrationResponse = {
6
6
  * uuid: "5291249998620209321712738612705518874926462927543783711572375085855029172391field",
7
- * job_id: "3019177021147406178755252788128212930359855601860174268911518336835545087409field",
8
7
  * status: "pending",
9
8
  * }
10
9
  */
11
10
  export interface RegistrationResponse {
12
11
  uuid: string;
13
- job_id?: string;
14
12
  status?: string;
15
13
  }
@@ -0,0 +1,9 @@
1
+ import type { RecordScannerFailure } from "./error.js";
2
+ import type { RegistrationResponse } from "./registrationResponse.js";
3
+ /** Success variant of registration result. */
4
+ export interface RegisterSuccess {
5
+ ok: true;
6
+ data: RegistrationResponse;
7
+ }
8
+ /** Result of register() and registerEncrypted(); never throws on HTTP error. */
9
+ export type RegisterResult = RegisterSuccess | RecordScannerFailure;
@@ -0,0 +1,15 @@
1
+ import type { RecordScannerFailure } from "./error.js";
2
+ /**
3
+ * Success variant of serialNumbers() result.
4
+ *
5
+ * @property ok - Whether the request was successful, always true for this interface.
6
+ * @property data - A map of serial numbers to whether they are owned by the account.
7
+ */
8
+ export interface SerialNumbersSuccess {
9
+ ok: true;
10
+ data: Record<string, boolean>;
11
+ }
12
+ /**
13
+ * Success or failure variant of serialNumbers() result.
14
+ */
15
+ export type SerialNumbersResult = SerialNumbersSuccess | RecordScannerFailure;
@@ -0,0 +1,13 @@
1
+ import type { RecordScannerFailure } from "./error.js";
2
+ import type { StatusResponse } from "./statusResponse.js";
3
+ /**
4
+ * Success variant of status() result.
5
+ *
6
+ * @property ok - Whether the request was successful, always true for this interface variant.
7
+ * @property data - StatusResponse returned by the server.
8
+ */
9
+ export interface StatusSuccess {
10
+ ok: true;
11
+ data: StatusResponse;
12
+ }
13
+ export type StatusResult = StatusSuccess | RecordScannerFailure;
@@ -0,0 +1,12 @@
1
+ import type { RecordScannerFailure } from "./error.js";
2
+ /**
3
+ * Success variant of tags() result.
4
+ *
5
+ * @property ok - Whether the request was successful, always true for this interface variant.
6
+ * @property data - A map of tags to whether they are owned by the account.
7
+ */
8
+ export interface TagsSuccess {
9
+ ok: true;
10
+ data: Record<string, boolean>;
11
+ }
12
+ export type TagsResult = TagsSuccess | RecordScannerFailure;