@inco/js 0.2.14 → 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.
- package/dist/attesteddecrypt/attested-decrypt.d.ts +35 -0
- package/dist/attesteddecrypt/attested-decrypt.js +79 -0
- package/dist/attesteddecrypt/index.d.ts +2 -0
- package/dist/attesteddecrypt/index.js +19 -0
- package/dist/attesteddecrypt/types.d.ts +28 -0
- package/dist/attesteddecrypt/types.js +16 -0
- package/dist/encryption/encryption.d.ts +8 -7
- package/dist/encryption/encryption.js +5 -2
- package/dist/fhevm/tfhe.js +5 -1
- package/dist/generated/abis/lightning.d.ts +43 -11
- package/dist/generated/abis/lightning.js +29 -10
- package/dist/generated/lightning.d.ts +21 -0
- package/dist/generated/lightning.js +23 -1
- package/dist/kms/client.d.ts +8 -0
- package/dist/kms/client.js +41 -0
- package/dist/lite/attested-decrypt.d.ts +3 -0
- package/dist/lite/attested-decrypt.js +6 -0
- package/dist/lite/hadu.d.ts +1 -1
- package/dist/lite/lightning.d.ts +6 -2
- package/dist/lite/lightning.js +17 -2
- package/dist/lite/reencrypt.d.ts +1 -2
- package/dist/lite/reencrypt.js +3 -22
- package/dist/reencryption/types.d.ts +3 -5
- package/dist/retry.d.ts +15 -0
- package/dist/retry.js +28 -0
- package/dist/types.d.ts +20 -0
- package/dist/types.js +3 -0
- package/package.json +1 -1
package/dist/lite/reencrypt.js
CHANGED
@@ -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
|
-
|
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 };
|
package/dist/retry.d.ts
ADDED
@@ -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=
|
package/dist/types.d.ts
ADDED
@@ -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