@inco/js 0.2.15 → 0.2.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.
@@ -0,0 +1,35 @@
1
+ import type { Account, Chain, Transport, WalletClient } from 'viem';
2
+ import { HexString } from '../binary';
3
+ import { SupportedChain } from '../chain';
4
+ import { EciesScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption';
5
+ import type { KmsClient } from '../kms/client';
6
+ import type { BackoffConfig } from '../retry';
7
+ /**
8
+ * Arguments for creating an attested decryptor.
9
+ */
10
+ export interface IncoLiteAttestedDecryptorArgs {
11
+ /** The wallet used to interact with the blockchain and sign the decrypt request */
12
+ walletClient: WalletClient<Transport, Chain, Account>;
13
+ /** The KMS connect RPC endpoint or client instance */
14
+ kmsConnectRpcEndpointOrClient?: string | KmsClient;
15
+ /** The chain ID to use */
16
+ chainId: SupportedChain;
17
+ }
18
+ /**
19
+ * Creates an attested decryptor that can decrypt handles using attestation.
20
+ * @param args - The arguments for creating the decryptor
21
+ * @returns A function that can decrypt handles using attestation
22
+ * @throws {AttestedDecryptError} If the decryptor creation fails
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const decryptor = await incoLiteAttestedDecryptor({
27
+ * walletClient,
28
+ * chainId: sepolia,
29
+ * });
30
+ * const plaintext = await decryptor({ handle: '0x...' });
31
+ * ```
32
+ */
33
+ export declare function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }: IncoLiteAttestedDecryptorArgs): Promise<(<T extends SupportedFheType>({ handle, }: {
34
+ handle: HexString;
35
+ }, backoffConfig?: Partial<BackoffConfig>) => Promise<PlaintextOf<EciesScheme, T>>)>;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.incoLiteAttestedDecryptor = incoLiteAttestedDecryptor;
4
+ const viem_1 = require("viem");
5
+ const binary_1 = require("../binary");
6
+ const chain_1 = require("../chain");
7
+ const encryption_1 = require("../encryption/encryption");
8
+ const handle_1 = require("../handle");
9
+ const client_1 = require("../kms/client");
10
+ const eip712_1 = require("../reencryption/eip712");
11
+ const retry_1 = require("../retry");
12
+ const types_1 = require("./types");
13
+ /**
14
+ * Validates a handle format.
15
+ * @param handle - The handle to validate
16
+ * @throws {AttestedDecryptError} If the handle format is invalid
17
+ */
18
+ function validateHandle(handle) {
19
+ if (!handle.startsWith('0x') || handle.length !== 66) {
20
+ throw new types_1.AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
21
+ }
22
+ }
23
+ /**
24
+ * Creates an attested decryptor that can decrypt handles using attestation.
25
+ * @param args - The arguments for creating the decryptor
26
+ * @returns A function that can decrypt handles using attestation
27
+ * @throws {AttestedDecryptError} If the decryptor creation fails
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const decryptor = await incoLiteAttestedDecryptor({
32
+ * walletClient,
33
+ * chainId: sepolia,
34
+ * });
35
+ * const plaintext = await decryptor({ handle: '0x...' });
36
+ * ```
37
+ */
38
+ async function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }) {
39
+ const kmsClient = (0, client_1.getKmsClient)(kmsConnectRpcEndpointOrClient || (0, client_1.defaultCovalidatorGrpc)((0, chain_1.getSupportedChain)(chainId)));
40
+ return async function attestedDecrypt({ handle, }, backoffConfig) {
41
+ try {
42
+ validateHandle(handle);
43
+ // Create the EIP712 payload for the handles to decrypt
44
+ const eip712Payload = (0, eip712_1.createEIP712Payload)({
45
+ chainId: BigInt(chainId.id),
46
+ primaryType: 'AttestedDecryptRequest',
47
+ primaryTypeFields: [{ name: 'handles', type: 'string[]' }],
48
+ message: {
49
+ handles: [handle],
50
+ },
51
+ domainName: 'incoLite',
52
+ domainVersion: '1',
53
+ });
54
+ // Sign the EIP712 message
55
+ const eip712Signature = await walletClient.signTypedData(eip712Payload);
56
+ const attestedDecryptRequest = {
57
+ userAddress: walletClient.account.address,
58
+ eip712Signature: (0, viem_1.hexToBytes)(eip712Signature),
59
+ handles: [handle],
60
+ };
61
+ const response = await (0, retry_1.retryWithBackoff)(async () => {
62
+ return await kmsClient.attestedDecrypt(attestedDecryptRequest);
63
+ }, backoffConfig);
64
+ if (!response.payload?.results?.[0]?.plaintext) {
65
+ throw new types_1.AttestedDecryptError('No plaintext in response');
66
+ }
67
+ const handleType = (0, handle_1.getHandleType)(handle);
68
+ const bigIntValue = (0, binary_1.bytesToBigInt)(response.payload.results[0].plaintext);
69
+ return (0, encryption_1.bigintToPlaintext)(encryption_1.encryptionSchemes.ecies, handleType, bigIntValue);
70
+ }
71
+ catch (error) {
72
+ if (error instanceof types_1.AttestedDecryptError) {
73
+ throw error;
74
+ }
75
+ throw new types_1.AttestedDecryptError('Failed to decrypt handle', error);
76
+ }
77
+ };
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlEQSw4REEwREM7QUFsSEQsK0JBQWtDO0FBQ2xDLHNDQUFxRDtBQUNyRCxvQ0FBNkQ7QUFDN0QseURBTWtDO0FBQ2xDLHNDQUEwQztBQUUxQywwQ0FBcUU7QUFDckUsbURBQTZEO0FBRTdELG9DQUE0QztBQUM1QyxtQ0FBK0M7QUFFL0M7Ozs7R0FJRztBQUNILFNBQVMsY0FBYyxDQUFDLE1BQWM7SUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNyRCxNQUFNLElBQUksNEJBQW9CLENBQUMsb0VBQW9FLENBQUMsQ0FBQztJQUN2RyxDQUFDO0FBQ0gsQ0FBQztBQWNEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0ksS0FBSyxVQUFVLHlCQUF5QixDQUFDLEVBQzlDLDZCQUE2QixFQUM3QixPQUFPLEVBQ1AsWUFBWSxHQUNrQjtJQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFBLHFCQUFZLEVBQUMsNkJBQTZCLElBQUksSUFBQSwrQkFBc0IsRUFBQyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVwSCxPQUFPLEtBQUssVUFBVSxlQUFlLENBQ25DLEVBQ0UsTUFBTSxHQUdQLEVBQ0QsYUFBc0M7UUFFdEMsSUFBSSxDQUFDO1lBQ0gsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXZCLHVEQUF1RDtZQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFBLDRCQUFtQixFQUFDO2dCQUN4QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLFdBQVcsRUFBRSx3QkFBd0I7Z0JBQ3JDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDMUQsT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztpQkFDbEI7Z0JBQ0QsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLGFBQWEsRUFBRSxHQUFHO2FBQ25CLENBQUMsQ0FBQztZQUVILDBCQUEwQjtZQUMxQixNQUFNLGVBQWUsR0FBRyxNQUFNLFlBQVksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFeEUsTUFBTSxzQkFBc0IsR0FBRztnQkFDN0IsV0FBVyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTztnQkFDekMsZUFBZSxFQUFFLElBQUEsaUJBQVUsRUFBQyxlQUFlLENBQUM7Z0JBQzVDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNsQixDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLHdCQUFnQixFQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNqRCxPQUFPLE1BQU0sU0FBUyxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUVsQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDL0MsTUFBTSxJQUFJLDRCQUFvQixDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLElBQUEsc0JBQWEsRUFBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFBLHNCQUFhLEVBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFekUsT0FBTyxJQUFBLDhCQUFpQixFQUFDLDhCQUFpQixDQUFDLEtBQUssRUFBRSxVQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLEtBQUssWUFBWSw0QkFBb0IsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLElBQUksNEJBQW9CLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ export * from './attested-decrypt';
2
+ export * from './types';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./attested-decrypt"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBbUM7QUFDbkMsMENBQXdCIn0=
@@ -0,0 +1,28 @@
1
+ import { CiphertextOf, EncryptionScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption';
2
+ import type { AttestedDecryptRequest, AttestedDecryptResponse } from '../generated/es/inco/kms/lite/v1/kms_service_pb';
3
+ import type { BackoffConfig } from '../retry';
4
+ /**
5
+ * Arguments for the attested decrypt function.
6
+ */
7
+ export interface AttestedDecryptFnArgs<S extends EncryptionScheme, T extends SupportedFheType> {
8
+ /** The handle to decrypt */
9
+ handle: string;
10
+ /** Optional ciphertext if not already stored */
11
+ ciphertext?: CiphertextOf<S, T>;
12
+ }
13
+ /**
14
+ * Request to the attested decrypt endpoint.
15
+ */
16
+ export type AttestedDecryptEndpointRequest = AttestedDecryptRequest;
17
+ /**
18
+ * Response from the attested decrypt endpoint.
19
+ */
20
+ export type AttestedDecryptEndpointResponse = AttestedDecryptResponse;
21
+ /**
22
+ * Custom error class for attested decrypt operations.
23
+ */
24
+ export declare class AttestedDecryptError extends Error {
25
+ readonly cause?: unknown | undefined;
26
+ constructor(message: string, cause?: unknown | undefined);
27
+ }
28
+ export type AttestedDecryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: AttestedDecryptFnArgs<S, T>, backoffConfig?: Partial<BackoffConfig>) => Promise<PlaintextOf<S, T>>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttestedDecryptError = void 0;
4
+ /**
5
+ * Custom error class for attested decrypt operations.
6
+ */
7
+ class AttestedDecryptError extends Error {
8
+ cause;
9
+ constructor(message, cause) {
10
+ super(message);
11
+ this.cause = cause;
12
+ this.name = 'AttestedDecryptError';
13
+ }
14
+ }
15
+ exports.AttestedDecryptError = AttestedDecryptError;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXdCQTs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsS0FBSztJQUczQjtJQUZsQixZQUNFLE9BQWUsRUFDQyxLQUFlO1FBRS9CLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUZDLFVBQUssR0FBTCxLQUFLLENBQVU7UUFHL0IsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFSRCxvREFRQyJ9
@@ -103,6 +103,27 @@ export declare const lightningDeployments: readonly [{
103
103
  readonly deployDate: "2025-05-14T07:08:39.059Z";
104
104
  readonly commit: "v4";
105
105
  readonly active: true;
106
+ }, {
107
+ readonly name: "incoLightningPreview_0_2_1__297966649";
108
+ readonly majorVersion: 0;
109
+ readonly deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC";
110
+ readonly pepper: "alphanet";
111
+ readonly executorAddress: "0x4651DfD7729aE5568092E7351fAaD872266d4CBd";
112
+ readonly salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc0023f7798f470fdf5e9da639";
113
+ readonly chainId: 84532;
114
+ readonly chainName: "Base Sepolia";
115
+ readonly version: {
116
+ readonly major: 0;
117
+ readonly minor: 2;
118
+ readonly patch: 1;
119
+ readonly shortSalt: "297966649";
120
+ };
121
+ readonly decryptSigner: "0x4736F8CE685760017eEc130AC3FFc6187f5A1F95";
122
+ readonly eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b84095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235";
123
+ readonly blockNumber: 27543410;
124
+ readonly deployDate: "2025-06-25T12:38:32.856Z";
125
+ readonly commit: "v5-17-ga03e4b32-dirty";
126
+ readonly active: true;
106
127
  }, {
107
128
  readonly name: "incoLightningPreview_0_2_0__297966649";
108
129
  readonly majorVersion: 0;
@@ -112,6 +112,28 @@ exports.lightningDeployments = [
112
112
  "commit": "v4",
113
113
  "active": true
114
114
  },
115
+ {
116
+ "name": "incoLightningPreview_0_2_1__297966649",
117
+ "majorVersion": 0,
118
+ "deployer": "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",
119
+ "pepper": "alphanet",
120
+ "executorAddress": "0x4651DfD7729aE5568092E7351fAaD872266d4CBd",
121
+ "salt": "0x8202d2d747784cb7d48868e44c42c4bf162a70bc0023f7798f470fdf5e9da639",
122
+ "chainId": 84532,
123
+ "chainName": "Base Sepolia",
124
+ "version": {
125
+ "major": 0,
126
+ "minor": 2,
127
+ "patch": 1,
128
+ "shortSalt": "297966649"
129
+ },
130
+ "decryptSigner": "0x4736F8CE685760017eEc130AC3FFc6187f5A1F95",
131
+ "eciesPublicKey": "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b84095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235",
132
+ "blockNumber": 27543410,
133
+ "deployDate": "2025-06-25T12:38:32.856Z",
134
+ "commit": "v5-17-ga03e4b32-dirty",
135
+ "active": true
136
+ },
115
137
  {
116
138
  "name": "incoLightningPreview_0_2_0__297966649",
117
139
  "majorVersion": 0,
@@ -201,4 +223,4 @@ exports.lightningDeployments = [
201
223
  "active": true
202
224
  }
203
225
  ];
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC9saWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxvQkFBb0IsR0FBRztJQUNsQztRQUNFLE1BQU0sRUFBRSxnQ0FBZ0M7UUFDeEMsY0FBYyxFQUFFLENBQUM7UUFDakIsVUFBVSxFQUFFLDRDQUE0QztRQUN4RCxRQUFRLEVBQUUsU0FBUztRQUNuQixpQkFBaUIsRUFBRSw0Q0FBNEM7UUFDL0QsTUFBTSxFQUFFLG9FQUFvRTtRQUM1RSxTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsY0FBYztRQUMzQixTQUFTLEVBQUU7WUFDVCxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7WUFDVixXQUFXLEVBQUUsV0FBVztTQUN6QjtRQUNELGVBQWUsRUFBRSw0Q0FBNEM7UUFDN0QsZ0JBQWdCLEVBQUUsc0lBQXNJO1FBQ3hKLGFBQWEsRUFBRSxRQUFRO1FBQ3ZCLFlBQVksRUFBRSwwQkFBMEI7UUFDeEMsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxRQUFRLEVBQUUsSUFBSTtLQUNmO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsaUNBQWlDO1FBQ3pDLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLFVBQVUsRUFBRSw0Q0FBNEM7UUFDeEQsUUFBUSxFQUFFLFNBQVM7UUFDbkIsaUJBQWlCLEVBQUUsNENBQTRDO1FBQy9ELE1BQU0sRUFBRSxvRUFBb0U7UUFDNUUsU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLGVBQWU7UUFDNUIsU0FBUyxFQUFFO1lBQ1QsT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLFdBQVc7U0FDekI7UUFDRCxlQUFlLEVBQUUsNENBQTRDO1FBQzdELGdCQUFnQixFQUFFLHNJQUFz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
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC9saWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxvQkFBb0IsR0FBRztJQUNsQztRQUNFLE1BQU0sRUFBRSxnQ0FBZ0M7UUFDeEMsY0FBYyxFQUFFLENBQUM7UUFDakIsVUFBVSxFQUFFLDRDQUE0QztRQUN4RCxRQUFRLEVBQUUsU0FBUztRQUNuQixpQkFBaUIsRUFBRSw0Q0FBNEM7UUFDL0QsTUFBTSxFQUFFLG9FQUFvRTtRQUM1RSxTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsY0FBYztRQUMzQixTQUFTLEVBQUU7WUFDVCxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7WUFDVixXQUFXLEVBQUUsV0FBVztTQUN6QjtRQUNELGVBQWUsRUFBRSw0Q0FBNEM7UUFDN0QsZ0JBQWdCLEVBQUUsc0lBQXNJO1FBQ3hKLGFBQWEsRUFBRSxRQUFRO1FBQ3ZCLFlBQVksRUFBRSwwQkFBMEI7UUFDeEMsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxRQUFRLEVBQUUsSUFBSTtLQUNmO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsaUNBQWlDO1FBQ3pDLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLFVBQVUsRUFBRSw0Q0FBNEM7UUFDeEQsUUFBUSxFQUFFLFNBQVM7UUFDbkIsaUJBQWlCLEVBQUUsNENBQTRDO1FBQy9ELE1BQU0sRUFBRSxvRUFBb0U7UUFDNUUsU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLGVBQWU7UUFDNUIsU0FBUyxFQUFFO1lBQ1QsT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLFdBQVc7U0FDekI7UUFDRCxlQUFlLEVBQUUsNENBQTRDO1FBQzdELGdCQUFnQixFQUFFLHNJQUFz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
@@ -0,0 +1,8 @@
1
+ import { Client } from '@connectrpc/connect';
2
+ import { SupportedChain } from '../chain';
3
+ import { KmsService } from '../generated/es/inco/kms/lite/v1/kms_service_pb';
4
+ export type KmsClient = Client<typeof KmsService>;
5
+ export declare function getKmsClient(kmsConnectRpcEndpointOrClient: string | KmsClient): KmsClient;
6
+ export declare function defaultCovalidatorGrpc(chain: SupportedChain): string;
7
+ export declare function lightningDevnetCovalidatorGrpc(chain: SupportedChain): string;
8
+ export declare function lightningTestnetCovalidatorGrpc(chain: SupportedChain): string;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getKmsClient = getKmsClient;
4
+ exports.defaultCovalidatorGrpc = defaultCovalidatorGrpc;
5
+ exports.lightningDevnetCovalidatorGrpc = lightningDevnetCovalidatorGrpc;
6
+ exports.lightningTestnetCovalidatorGrpc = lightningTestnetCovalidatorGrpc;
7
+ const connect_1 = require("@connectrpc/connect");
8
+ const connect_web_1 = require("@connectrpc/connect-web");
9
+ const kms_service_pb_1 = require("../generated/es/inco/kms/lite/v1/kms_service_pb");
10
+ // Helper function to get a KMS client from a string or a Client instance.
11
+ function getKmsClient(kmsConnectRpcEndpointOrClient) {
12
+ if (typeof kmsConnectRpcEndpointOrClient === 'string') {
13
+ const transport = (0, connect_web_1.createConnectTransport)({
14
+ baseUrl: kmsConnectRpcEndpointOrClient,
15
+ });
16
+ return (0, connect_1.createClient)(kms_service_pb_1.KmsService, transport);
17
+ }
18
+ return kmsConnectRpcEndpointOrClient;
19
+ }
20
+ // Helper function to return the default gRPC endpoint for the covalidator.
21
+ // Currently, this returns the covalidator for the Inco Lightning public testnet.
22
+ function defaultCovalidatorGrpc(chain) {
23
+ return lightningTestnetCovalidatorGrpc(chain);
24
+ }
25
+ // Helper function to get the devnet gRPC endpoint for the Inco Lightning covalidator.
26
+ function lightningDevnetCovalidatorGrpc(chain) {
27
+ return getCovalidatorGrpcHelper(chain, 'devnet', 'lightning');
28
+ }
29
+ // Helper function to get the testnet gRPC endpoint for the Inco Lightning covalidator.
30
+ function lightningTestnetCovalidatorGrpc(chain) {
31
+ return getCovalidatorGrpcHelper(chain, 'testnet', 'lightning');
32
+ }
33
+ // Convert camelCase to dash-case.
34
+ function camelToDashCase(str) {
35
+ return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
36
+ }
37
+ // Small helper, as our GCP covalidator URLs are in a specific format.
38
+ function getCovalidatorGrpcHelper(chain, network, cluster) {
39
+ return `https://grpc.${camelToDashCase(chain.name)}.${cluster}.${network}.inco.org`;
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ttcy9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxvQ0FTQztBQUlELHdEQUVDO0FBR0Qsd0VBRUM7QUFHRCwwRUFFQztBQWpDRCxpREFBMkQ7QUFDM0QseURBQWlFO0FBRWpFLG9GQUE2RTtBQUk3RSwwRUFBMEU7QUFDMUUsU0FBZ0IsWUFBWSxDQUFDLDZCQUFpRDtJQUM1RSxJQUFJLE9BQU8sNkJBQTZCLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBQSxvQ0FBc0IsRUFBQztZQUN2QyxPQUFPLEVBQUUsNkJBQTZCO1NBQ3ZDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBQSxzQkFBWSxFQUFDLDJCQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU8sNkJBQTZCLENBQUM7QUFDdkMsQ0FBQztBQUVELDJFQUEyRTtBQUMzRSxpRkFBaUY7QUFDakYsU0FBZ0Isc0JBQXNCLENBQUMsS0FBcUI7SUFDMUQsT0FBTywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQsc0ZBQXNGO0FBQ3RGLFNBQWdCLDhCQUE4QixDQUFDLEtBQXFCO0lBQ2xFLE9BQU8sd0JBQXdCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsdUZBQXVGO0FBQ3ZGLFNBQWdCLCtCQUErQixDQUFDLEtBQXFCO0lBQ25FLE9BQU8sd0JBQXdCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsa0NBQWtDO0FBQ2xDLFNBQVMsZUFBZSxDQUFDLEdBQVc7SUFDbEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFFRCxzRUFBc0U7QUFDdEUsU0FBUyx3QkFBd0IsQ0FBQyxLQUFxQixFQUFFLE9BQTZCLEVBQUUsT0FBb0I7SUFDMUcsT0FBTyxnQkFBZ0IsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLElBQUksT0FBTyxXQUFXLENBQUM7QUFDdEYsQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ import { type IncoLiteAttestedDecryptorArgs, incoLiteAttestedDecryptor } from '../attesteddecrypt/attested-decrypt';
2
+ export { incoLiteAttestedDecryptor };
3
+ export type { IncoLiteAttestedDecryptorArgs };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.incoLiteAttestedDecryptor = void 0;
4
+ const attested_decrypt_1 = require("../attesteddecrypt/attested-decrypt");
5
+ Object.defineProperty(exports, "incoLiteAttestedDecryptor", { enumerable: true, get: function () { return attested_decrypt_1.incoLiteAttestedDecryptor; } });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saXRlL2F0dGVzdGVkLWRlY3J5cHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMEVBQW9IO0FBRTNHLDBHQUZvQyw0Q0FBeUIsT0FFcEMifQ==
@@ -2,7 +2,7 @@ import { Account, Chain, Transport, WalletClient } from 'viem';
2
2
  import { Address, HexString } from '../binary';
3
3
  import { EciesScheme } from '../encryption';
4
4
  import { lightningDeployments } from '../generated/lightning';
5
- import { localNodeLightningConfig } from '../generated/local-node';
5
+ import { LocalNodeEnv } from '../local';
6
6
  import type { Reencryptor } from '../reencryption';
7
7
  type TupleToUnion<T> = T extends readonly unknown[] ? T[number] : never;
8
8
  type Deployment = TupleToUnion<typeof lightningDeployments>;
@@ -56,8 +56,12 @@ export declare class Lightning<T extends DeploymentSlice = DeploymentSlice> {
56
56
  *
57
57
  * See the sample docker-compose file here: https://github.com/Inco-fhevm/lightning-rod/blob/main/docker-compose.yaml
58
58
  *
59
+ * @param env this is an optional object containing the environment variables to use for the local node. If none is
60
+ * provided, the default testnet local node configuration will be used. The LocalNodeEnv is part of the state dump
61
+ * and one is provided for each network.
62
+ *
59
63
  */
60
- static localNode(): Lightning<DeploymentSlice & typeof localNodeLightningConfig>;
64
+ static localNode(env?: LocalNodeEnv): Lightning<DeploymentSlice & CustomConfig>;
61
65
  /**
62
66
  * Get a Lightning deployment by name or executor address on a particular chain.
63
67
  *
@@ -53,8 +53,23 @@ class Lightning {
53
53
  *
54
54
  * See the sample docker-compose file here: https://github.com/Inco-fhevm/lightning-rod/blob/main/docker-compose.yaml
55
55
  *
56
+ * @param env this is an optional object containing the environment variables to use for the local node. If none is
57
+ * provided, the default testnet local node configuration will be used. The LocalNodeEnv is part of the state dump
58
+ * and one is provided for each network.
59
+ *
56
60
  */
57
- static localNode() {
61
+ static localNode(env) {
62
+ if (env) {
63
+ return Lightning.custom({
64
+ // We assume that we always run a local node as the default anvil node
65
+ chainId: local_node_1.localNodeLightningConfig.chainId,
66
+ covalidatorUrl: local_node_1.localNodeLightningConfig.covalidatorUrl,
67
+ // These variables vary per environment
68
+ executorAddress: env.EXECUTOR_ADDRESS,
69
+ eciesPublicKey: env.ECIES_PUBLIC_KEY,
70
+ senderPrivateKey: env.SENDER_PRIVATE_KEY,
71
+ });
72
+ }
58
73
  return Lightning.custom(local_node_1.localNodeLightningConfig);
59
74
  }
60
75
  /**
@@ -180,4 +195,4 @@ class Lightning {
180
195
  }
181
196
  }
182
197
  exports.Lightning = Lightning;
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpdGUvbGlnaHRuaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUEyRTtBQUMzRSx3Q0FBMEM7QUFDMUMsc0NBQTZEO0FBQzdELDhDQUF1RjtBQUV2RixzREFBOEQ7QUFDOUQsd0RBQW1FO0FBQ25FLHNDQUF3QztBQUV4QyxzQ0FBa0M7QUFDbEMsbUNBQWtIO0FBQ2xILDJDQUFnRTtBQXdDaEU7OztHQUdHO0FBQ0gsTUFBYSxTQUFTO0lBVUQ7SUFDRDtJQVZGLGVBQWUsQ0FBVTtJQUN6QixjQUFjLENBQVk7SUFDMUIsT0FBTyxDQUFTO0lBRWYsU0FBUyxDQUF5QjtJQUNsQyxnQkFBZ0IsQ0FBbUI7SUFDbkMsU0FBUyxDQUE0QjtJQUV0RCxZQUNtQixXQUFjLEVBQ2YsY0FBc0I7UUFEckIsZ0JBQVcsR0FBWCxXQUFXLENBQUc7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUV0QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUEscUJBQVksRUFBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFBLGNBQUssRUFBQyxrQkFBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUEsZ0NBQXdCLEdBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEsd0JBQVksRUFBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEseUJBQWlCLEVBQUM7WUFDakMsTUFBTSxFQUFFLDhCQUFpQixDQUFDLEtBQUs7WUFDL0IsT0FBTyxFQUFFLElBQUEsZ0NBQXdCLEVBQUMsSUFBQSxpQkFBVSxFQUFDLElBQUEsY0FBSyxFQUFDLGtCQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDM0YsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQjtRQUN2QixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLG9CQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxTQUFTO1FBQ2QsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLHFDQUF3QixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQWdCO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxnQ0FBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDbEYsQ0FBQyxDQUFDLGdDQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsS0FBSyxFQUFFLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBeUIsTUFBUztRQUM3QyxPQUFPLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBbUIsTUFBUyxFQUFFLE9BQWdCO1FBQ25FLHNFQUFzRTtRQUN0RSxNQUFNLGNBQWMsR0FBRyxnQ0FBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLDRHQUE0RztZQUM1Ryx3QkFBd0I7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFtQixNQUFTLEVBQUUsT0FBZ0I7UUFDekQsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxVQUFVO1FBQ1osT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQVEsRUFDUixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQXFCO1FBRWxELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDMUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFDOUMsT0FBTyxFQUFFO2dCQUNQLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNoQyxXQUFXLEVBQUUsSUFBQSxxQkFBWSxFQUFDLGNBQWMsQ0FBQztnQkFDekMsZUFBZSxFQUFFLElBQUEscUJBQVksRUFBQyxXQUFXLENBQUM7YUFDM0M7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGNBQWMsQ0FBQyxZQUFxRDtRQUNsRSxPQUFPLElBQUEsK0JBQW1CLEVBQUM7WUFDekIsWUFBWTtZQUNaLDZCQUE2QixFQUFFLElBQUksQ0FBQyxTQUFTO1lBQzdDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxVQUFnRDtRQUM5RSxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDeEQsT0FBTyxXQUFXLGVBQWUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7SUFDbEYsQ0FBQztJQUVPLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBZ0I7UUFDeEMsT0FBUSxFQUF1QixDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7SUFDckQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FDL0IsS0FBUTtRQUVSLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsT0FBTztnQkFDTCxNQUFNLEVBQUUsOEJBQWlCLENBQUMsS0FBSztnQkFDL0IsSUFBSSxFQUFFLG9CQUFXLENBQUMsS0FBSztnQkFDdkIsS0FBSyxFQUFFLEtBQUs7YUFDc0MsQ0FBQztRQUN2RCxDQUFDO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEUsT0FBTztnQkFDTCxNQUFNLEVBQUUsOEJBQWlCLENBQUMsS0FBSztnQkFDL0IsSUFBSSxFQUFFLG9CQUFXLENBQUMsUUFBUTtnQkFDMUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDOEIsQ0FBQztRQUN2RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBcExELDhCQW9MQyJ9
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpdGUvbGlnaHRuaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUEyRTtBQUMzRSx3Q0FBMEM7QUFDMUMsc0NBQTZEO0FBQzdELDhDQUF1RjtBQUV2RixzREFBOEQ7QUFDOUQsd0RBQW1FO0FBQ25FLHNDQUF3QztBQUd4QyxzQ0FBa0M7QUFDbEMsbUNBQWtIO0FBQ2xILDJDQUFnRTtBQXdDaEU7OztHQUdHO0FBQ0gsTUFBYSxTQUFTO0lBVUQ7SUFDRDtJQVZGLGVBQWUsQ0FBVTtJQUN6QixjQUFjLENBQVk7SUFDMUIsT0FBTyxDQUFTO0lBRWYsU0FBUyxDQUF5QjtJQUNsQyxnQkFBZ0IsQ0FBbUI7SUFDbkMsU0FBUyxDQUE0QjtJQUV0RCxZQUNtQixXQUFjLEVBQ2YsY0FBc0I7UUFEckIsZ0JBQVcsR0FBWCxXQUFXLENBQUc7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUV0QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUEscUJBQVksRUFBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFBLGNBQUssRUFBQyxrQkFBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUEsZ0NBQXdCLEdBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEsd0JBQVksRUFBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEseUJBQWlCLEVBQUM7WUFDakMsTUFBTSxFQUFFLDhCQUFpQixDQUFDLEtBQUs7WUFDL0IsT0FBTyxFQUFFLElBQUEsZ0NBQXdCLEVBQUMsSUFBQSxpQkFBVSxF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
@@ -4,7 +4,7 @@ import { SupportedChain } from '../chain';
4
4
  import { EciesScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption';
5
5
  import { KmsService, ReencryptResponse } from '../generated/es/inco/kms/lite/v1/kms_service_pb';
6
6
  import { Handle } from '../handle';
7
- import type { BackoffConfig, EIP712, Reencryptor, ReencryptorArgs } from '../reencryption';
7
+ import type { EIP712, Reencryptor, ReencryptorArgs } from '../reencryption';
8
8
  import { Secp256k1Keypair } from './ecies';
9
9
  export interface IncoLiteReencryptorArgs extends ReencryptorArgs {
10
10
  walletClient: WalletClient<Transport, Chain, Account>;
@@ -21,4 +21,3 @@ export declare function defaultCovalidatorGrpc(chain: SupportedChain): string;
21
21
  export declare function pulumiCovalidatorGrpc(chain: SupportedChain): string;
22
22
  export declare function lightningDevnetCovalidatorGrpc(chain: SupportedChain): string;
23
23
  export declare function lightningTestnetCovalidatorGrpc(chain: SupportedChain): string;
24
- export declare function retryWithBackoff<T>(fn: () => Promise<T>, { maxRetries, baseDelayInMs, backoffFactor }?: Partial<BackoffConfig>): Promise<T>;
@@ -8,7 +8,6 @@ exports.defaultCovalidatorGrpc = defaultCovalidatorGrpc;
8
8
  exports.pulumiCovalidatorGrpc = pulumiCovalidatorGrpc;
9
9
  exports.lightningDevnetCovalidatorGrpc = lightningDevnetCovalidatorGrpc;
10
10
  exports.lightningTestnetCovalidatorGrpc = lightningTestnetCovalidatorGrpc;
11
- exports.retryWithBackoff = retryWithBackoff;
12
11
  const connect_1 = require("@connectrpc/connect");
13
12
  const connect_web_1 = require("@connectrpc/connect-web");
14
13
  const viem_1 = require("viem");
@@ -19,6 +18,7 @@ const kms_service_pb_1 = require("../generated/es/inco/kms/lite/v1/kms_service_p
19
18
  const handle_1 = require("../handle");
20
19
  const eip712_1 = require("../reencryption/eip712");
21
20
  const ecies_1 = require("./ecies");
21
+ const retry_1 = require("../retry");
22
22
  // The domain constants used for basic reencrypts.
23
23
  // Note: for advanced ACL, since the signature is checked on-chain, the domain
24
24
  // and version must match the ones used in the contract. For basic ones, we use
@@ -79,7 +79,7 @@ async function incoLiteReencryptor({ kmsConnectRpcEndpointOrClient, chainId, wal
79
79
  ],
80
80
  };
81
81
  try {
82
- return await retryWithBackoff(async () => {
82
+ return await (0, retry_1.retryWithBackoff)(async () => {
83
83
  const response = await kmsClient.reencrypt(reencryptRequest);
84
84
  return decryptGrpcResponse(response, ephemeralKeypair, handle);
85
85
  }, backoffConfig);
@@ -139,23 +139,4 @@ function camelToDashCase(str) {
139
139
  function getCovalidatorGrpcHelper(chain, network, cluster) {
140
140
  return `https://grpc.${camelToDashCase(chain.name)}.${cluster}.${network}.inco.org`;
141
141
  }
142
- // Helper function to implement exponential backoff retry logic
143
- async function retryWithBackoff(fn, { maxRetries = 10, baseDelayInMs = 1000, backoffFactor = 1.5 } = {}) {
144
- let lastError;
145
- for (let attempt = 0; attempt < maxRetries; attempt++) {
146
- try {
147
- return await fn();
148
- }
149
- catch (error) {
150
- lastError = error;
151
- if (attempt === maxRetries - 1) {
152
- break;
153
- }
154
- const delay = baseDelayInMs * Math.pow(backoffFactor, attempt);
155
- const jitter = delay * (0.8 + Math.random() * 0.4); // random jitter, 80% to 120% of the delay
156
- await new Promise((resolve) => setTimeout(resolve, jitter));
157
- }
158
- }
159
- throw lastError;
160
- }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVlbmNyeXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpdGUvcmVlbmNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMkNBLDBDQVdDO0FBSUQsa0RBeURDO0FBR0Qsb0NBV0M7QUFLRCxrREFhQztBQUlELHdEQUVDO0FBS0Qsc0RBRUM7QUFHRCx3RUFFQztBQUdELDBFQUVDO0FBYUQsNENBcUJDO0FBNU1ELGlEQUEyRDtBQUMzRCx5REFBaUU7QUFDakUsK0JBQTRGO0FBQzVGLHNDQUEwQztBQUMxQyxvQ0FBNkQ7QUFDN0QseURBTWtDO0FBQ2xDLG9GQUFrSDtBQUNsSCxzQ0FBa0Q7QUFFbEQsbURBQTZEO0FBQzdELG1DQUE4RTtBQWlCOUUsa0RBQWtEO0FBQ2xELDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsZ0RBQWdEO0FBQ2hELE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixPQUFPLEVBQUUsT0FBTztDQUNqQixDQUFDO0FBRUYsOERBQThEO0FBQzlELFNBQWdCLGVBQWUsQ0FBQyxPQUFlLEVBQUUsZUFBMkI7SUFDMUUsT0FBTyxJQUFBLDRCQUFtQixFQUFDO1FBQ3pCLE9BQU87UUFDUCxXQUFXLEVBQUUscUJBQXFCO1FBQ2xDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN6RCxPQUFPLEVBQUU7WUFDUCxTQUFTLEVBQUUsSUFBQSxpQkFBVSxFQUFDLGVBQWUsQ0FBQztTQUN2QztRQUNELFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxJQUFJO1FBQ3ZDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxPQUFPO0tBQzlDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCw0RUFBNEU7QUFDNUUsYUFBYTtBQUNOLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxFQUN4Qyw2QkFBNkIsRUFDN0IsT0FBTyxFQUNQLFlB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
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVlbmNyeXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpdGUvcmVlbmNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNkNBLDBDQVdDO0FBSUQsa0RBeURDO0FBR0Qsb0NBV0M7QUFLRCxrREFhQztBQUlELHdEQUVDO0FBS0Qsc0RBRUM7QUFHRCx3RUFFQztBQUdELDBFQUVDO0FBNUtELGlEQUEyRDtBQUMzRCx5REFBaUU7QUFDakUsK0JBQTRGO0FBQzVGLHNDQUEwQztBQUMxQyxvQ0FBNkQ7QUFDN0QseURBTWtDO0FBQ2xDLG9GQUFrSDtBQUNsSCxzQ0FBa0Q7QUFFbEQsbURBQTZEO0FBQzdELG1DQUE4RTtBQUU5RSxvQ0FBNEM7QUFpQjVDLGtEQUFrRDtBQUNsRCw4RUFBOEU7QUFDOUUsK0VBQStFO0FBQy9FLGdEQUFnRDtBQUNoRCxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQUVGLDhEQUE4RDtBQUM5RCxTQUFnQixlQUFlLENBQUMsT0FBZSxFQUFFLGVBQTJCO0lBQzFFLE9BQU8sSUFBQSw0QkFBbUIsRUFBQztRQUN6QixPQUFPO1FBQ1AsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDekQsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLElBQUEsaUJBQVUsRUFBQyxlQUFlLENBQUM7U0FDdkM7UUFDRCxVQUFVLEVBQUUsc0JBQXNCLENBQUMsSUFBSTtRQUN2QyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsT0FBTztLQUM5QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsNEVBQTRFO0FBQzVFLGFBQWE7QUFDTixLQUFLLFVBQVUsbUJBQW1CLENBQUMsRUFDeEMsNkJBQTZCLEVBQzdCLE9BQU8sRUFDUCxZ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
@@ -1,15 +1,12 @@
1
1
  import { Address } from 'viem';
2
+ import { AttestedDecryptEndpointRequest, AttestedDecryptEndpointResponse, AttestedDecryptFnArgs } from '../attesteddecrypt/types';
2
3
  import { HexString } from '../binary';
3
4
  import { CiphertextOf, EncryptionScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption';
4
5
  import type { EphemeralCryptoBoxKeypair } from '../fhevm/reencrypt';
5
6
  import { Handle } from '../handle';
6
7
  import type { Secp256k1Keypair } from '../lite/ecies';
8
+ import type { BackoffConfig } from '../retry';
7
9
  export type Reencryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: ReencryptFnArgs<S, T>, backoffConfig?: Partial<BackoffConfig>) => Promise<PlaintextOf<S, T>>;
8
- export type BackoffConfig = {
9
- maxRetries: number;
10
- baseDelayInMs: number;
11
- backoffFactor: number;
12
- };
13
10
  export interface ReencryptorArgs {
14
11
  chainId: bigint;
15
12
  }
@@ -27,3 +24,4 @@ export interface ReencryptEndpointRequest<EKP extends SupportedEphemeralKeypairs
27
24
  eip712Signature: HexString;
28
25
  ephemeralKeypair: EKP;
29
26
  }
27
+ export type { AttestedDecryptEndpointRequest, AttestedDecryptEndpointResponse, AttestedDecryptFnArgs };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Configuration for exponential backoff retry logic.
3
+ */
4
+ export type BackoffConfig = {
5
+ maxRetries: number;
6
+ baseDelayInMs: number;
7
+ backoffFactor: number;
8
+ };
9
+ /**
10
+ * Helper function to implement exponential backoff retry logic.
11
+ * @param fn - The function to retry
12
+ * @param config - Optional backoff configuration
13
+ * @returns Promise that resolves with the result of the function
14
+ */
15
+ export declare function retryWithBackoff<T>(fn: () => Promise<T>, { maxRetries, baseDelayInMs, backoffFactor }?: Partial<BackoffConfig>): Promise<T>;
package/dist/retry.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retryWithBackoff = retryWithBackoff;
4
+ /**
5
+ * Helper function to implement exponential backoff retry logic.
6
+ * @param fn - The function to retry
7
+ * @param config - Optional backoff configuration
8
+ * @returns Promise that resolves with the result of the function
9
+ */
10
+ async function retryWithBackoff(fn, { maxRetries = 10, baseDelayInMs = 1000, backoffFactor = 1.5 } = {}) {
11
+ let lastError;
12
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
13
+ try {
14
+ return await fn();
15
+ }
16
+ catch (error) {
17
+ lastError = error;
18
+ if (attempt === maxRetries - 1) {
19
+ break;
20
+ }
21
+ const delay = baseDelayInMs * Math.pow(backoffFactor, attempt);
22
+ const jitter = delay * (0.8 + Math.random() * 0.4); // random jitter, 80% to 120% of the delay
23
+ await new Promise((resolve) => setTimeout(resolve, jitter));
24
+ }
25
+ }
26
+ throw lastError;
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSw0Q0FxQkM7QUEzQkQ7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLEVBQW9CLEVBQ3BCLEVBQUUsVUFBVSxHQUFHLEVBQUUsRUFBRSxhQUFhLEdBQUcsSUFBSSxFQUFFLGFBQWEsR0FBRyxHQUFHLEtBQTZCLEVBQUU7SUFFM0YsSUFBSSxTQUE0QixDQUFDO0lBRWpDLEtBQUssSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDcEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixTQUFTLEdBQUcsS0FBYyxDQUFDO1lBQzNCLElBQUksT0FBTyxLQUFLLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLEtBQUssR0FBRyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztZQUM5RixNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFNBQVMsQ0FBQztBQUNsQixDQUFDIn0=
@@ -0,0 +1,20 @@
1
+ import { Address } from 'viem';
2
+ import { CiphertextOf, EncryptionScheme, PlaintextOf, SupportedFheType } from './encryption/encryption';
3
+ import type { BackoffConfig } from './retry';
4
+ export interface AttestedDecryptFnArgs<S extends EncryptionScheme, T extends SupportedFheType> {
5
+ handle: string;
6
+ ciphertext?: CiphertextOf<S, T>;
7
+ }
8
+ export interface AttestedDecryptEndpointRequest {
9
+ userAddress: Address;
10
+ eip712Signature: Uint8Array;
11
+ handles: string[];
12
+ }
13
+ export interface AttestedDecryptEndpointResponse {
14
+ results: Array<{
15
+ handle: string;
16
+ plaintext: Uint8Array;
17
+ }>;
18
+ signature: Uint8Array;
19
+ }
20
+ export type AttestedDecryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: AttestedDecryptFnArgs<S, T>, backoffConfig?: Partial<BackoffConfig>) => Promise<PlaintextOf<S, T>>;
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inco/js",
3
- "version": "0.2.15",
3
+ "version": "0.2.16",
4
4
  "repository": "https://github.com/Inco-fhevm/inco-monorepo",
5
5
  "scripts": {
6
6
  "test": "bun run lint && bun run test:tsc && bun run test:unit",