@inco/js 0.6.9 → 0.7.0
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/README.md +8 -8
- package/dist/cjs/advancedacl/session-key.d.ts +39 -26
- package/dist/cjs/advancedacl/session-key.js +53 -136
- package/dist/cjs/attestedcompute/attested-compute.d.ts +6 -6
- package/dist/cjs/attestedcompute/attested-compute.js +5 -35
- package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +36 -21
- package/dist/cjs/attesteddecrypt/attested-decrypt.js +107 -108
- package/dist/cjs/attesteddecrypt/types.d.ts +4 -4
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.js +1 -1
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +13 -5
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +3 -4
- package/dist/cjs/generated/lightning.d.ts +40 -0
- package/dist/cjs/generated/lightning.js +43 -1
- package/dist/cjs/generated/local-node.d.ts +11 -7
- package/dist/cjs/generated/local-node.js +28 -8
- package/dist/cjs/kms/client.d.ts +8 -4
- package/dist/cjs/kms/client.js +9 -4
- package/dist/cjs/kms/quorumClient.d.ts +58 -0
- package/dist/cjs/kms/quorumClient.js +378 -0
- package/dist/cjs/kms/thresholdPromises.d.ts +7 -0
- package/dist/cjs/kms/thresholdPromises.js +52 -0
- package/dist/cjs/lite/index.d.ts +0 -1
- package/dist/cjs/lite/index.js +1 -2
- package/dist/cjs/lite/lightning.d.ts +87 -67
- package/dist/cjs/lite/lightning.js +231 -100
- package/dist/cjs/local/local-node.d.ts +1 -2
- package/dist/cjs/local/local-node.js +2 -3
- package/dist/cjs/test/mocks.d.ts +3 -0
- package/dist/cjs/test/mocks.js +19 -1
- package/dist/esm/advancedacl/session-key.d.ts +39 -26
- package/dist/esm/advancedacl/session-key.js +44 -126
- package/dist/esm/attestedcompute/attested-compute.d.ts +6 -6
- package/dist/esm/attestedcompute/attested-compute.js +6 -36
- package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +36 -21
- package/dist/esm/attesteddecrypt/attested-decrypt.js +106 -108
- package/dist/esm/attesteddecrypt/types.d.ts +4 -4
- package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
- package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js +1 -1
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +13 -5
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +2 -3
- package/dist/esm/generated/lightning.d.ts +40 -0
- package/dist/esm/generated/lightning.js +43 -1
- package/dist/esm/generated/local-node.d.ts +11 -7
- package/dist/esm/generated/local-node.js +28 -8
- package/dist/esm/kms/client.d.ts +8 -4
- package/dist/esm/kms/client.js +8 -4
- package/dist/esm/kms/quorumClient.d.ts +58 -0
- package/dist/esm/kms/quorumClient.js +374 -0
- package/dist/esm/kms/thresholdPromises.d.ts +7 -0
- package/dist/esm/kms/thresholdPromises.js +49 -0
- package/dist/esm/lite/index.d.ts +0 -1
- package/dist/esm/lite/index.js +1 -2
- package/dist/esm/lite/lightning.d.ts +87 -67
- package/dist/esm/lite/lightning.js +234 -103
- package/dist/esm/local/local-node.d.ts +1 -2
- package/dist/esm/local/local-node.js +2 -3
- package/dist/esm/test/mocks.d.ts +3 -0
- package/dist/esm/test/mocks.js +17 -1
- package/dist/types/advancedacl/session-key.d.ts +39 -26
- package/dist/types/attestedcompute/attested-compute.d.ts +6 -6
- package/dist/types/attesteddecrypt/attested-decrypt.d.ts +36 -21
- package/dist/types/attesteddecrypt/types.d.ts +4 -4
- package/dist/types/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
- package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +13 -5
- package/dist/types/generated/lightning.d.ts +40 -0
- package/dist/types/generated/local-node.d.ts +11 -7
- package/dist/types/kms/client.d.ts +8 -4
- package/dist/types/kms/quorumClient.d.ts +58 -0
- package/dist/types/kms/thresholdPromises.d.ts +7 -0
- package/dist/types/lite/index.d.ts +0 -1
- package/dist/types/lite/lightning.d.ts +87 -67
- package/dist/types/local/local-node.d.ts +1 -2
- package/dist/types/test/mocks.d.ts +3 -0
- package/package.json +2 -2
- package/dist/cjs/attestedreveal/attested-reveal.d.ts +0 -21
- package/dist/cjs/attestedreveal/attested-reveal.js +0 -69
- package/dist/cjs/attestedreveal/index.d.ts +0 -1
- package/dist/cjs/attestedreveal/index.js +0 -18
- package/dist/cjs/attestedreveal/types.d.ts +0 -7
- package/dist/cjs/attestedreveal/types.js +0 -16
- package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
- package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.js +0 -118
- package/dist/cjs/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
- package/dist/cjs/generated/es/inco/fhe/v1/types_pb.js +0 -136
- package/dist/cjs/lite/reencrypt.d.ts +0 -21
- package/dist/cjs/lite/reencrypt.js +0 -141
- package/dist/esm/attestedreveal/attested-reveal.d.ts +0 -21
- package/dist/esm/attestedreveal/attested-reveal.js +0 -66
- package/dist/esm/attestedreveal/index.d.ts +0 -1
- package/dist/esm/attestedreveal/index.js +0 -2
- package/dist/esm/attestedreveal/types.d.ts +0 -7
- package/dist/esm/attestedreveal/types.js +0 -12
- package/dist/esm/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
- package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +0 -115
- package/dist/esm/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
- package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +0 -133
- package/dist/esm/lite/reencrypt.d.ts +0 -21
- package/dist/esm/lite/reencrypt.js +0 -131
- package/dist/types/attestedreveal/attested-reveal.d.ts +0 -21
- package/dist/types/attestedreveal/index.d.ts +0 -1
- package/dist/types/attestedreveal/types.d.ts +0 -7
- package/dist/types/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
- package/dist/types/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
- package/dist/types/lite/reencrypt.d.ts +0 -21
|
@@ -1,30 +1,38 @@
|
|
|
1
1
|
import type { Account, Chain, Transport, WalletClient } from 'viem';
|
|
2
|
-
import { HexString } from '../binary.js';
|
|
3
|
-
import { SupportedChainId } from '../chain.js';
|
|
4
|
-
import { EciesScheme, SupportedFheType } from '../encryption/encryption.js';
|
|
5
|
-
import
|
|
6
|
-
import { Secp256k1Keypair } from '../lite/ecies.js';
|
|
2
|
+
import { type HexString } from '../binary.js';
|
|
3
|
+
import { type SupportedChainId } from '../chain.js';
|
|
4
|
+
import { type EciesScheme, type SupportedFheType } from '../encryption/encryption.js';
|
|
5
|
+
import { KmsQuorumClient } from '../kms/quorumClient.js';
|
|
6
|
+
import type { Secp256k1Keypair } from '../lite/ecies.js';
|
|
7
7
|
import type { BackoffConfig } from '../retry.js';
|
|
8
|
-
import { DecryptionAttestation, EncryptedDecryptionAttestation } from './types.js';
|
|
8
|
+
import { type DecryptionAttestation, type EncryptedDecryptionAttestation } from './types.js';
|
|
9
9
|
export declare const ATTESTED_DECRYPT_DOMAIN_NAME = "IncoAttestedDecrypt";
|
|
10
|
-
export declare const ATTESTED_DECRYPT_DOMAIN_VERSION = "
|
|
11
|
-
/**
|
|
12
|
-
* Validates a handle format.
|
|
13
|
-
* @param handle - The handle to validate
|
|
14
|
-
* @throws {AttestedDecryptError} If the handle format is invalid
|
|
15
|
-
*/
|
|
16
|
-
export declare function validateHandle(handle: HexString): void;
|
|
10
|
+
export declare const ATTESTED_DECRYPT_DOMAIN_VERSION = "1";
|
|
17
11
|
/**
|
|
18
12
|
* Arguments for creating an attested decrypt request.
|
|
19
13
|
*/
|
|
20
14
|
export interface IncoLiteAttestedDecryptorArgs {
|
|
21
15
|
/** The wallet used to interact with the blockchain and sign the decrypt request */
|
|
22
16
|
walletClient: WalletClient<Transport, Chain, Account>;
|
|
23
|
-
/** The KMS
|
|
24
|
-
|
|
17
|
+
/** The KMS quorum client instance */
|
|
18
|
+
kmsQuorumClient: KmsQuorumClient;
|
|
25
19
|
/** The chain ID to use */
|
|
26
20
|
chainId: SupportedChainId;
|
|
27
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Decrypt multiple handles in a single attested request without wallet authentication.
|
|
24
|
+
* Returns an array of attestations aligned with the response ordering.
|
|
25
|
+
*
|
|
26
|
+
* @param args - The arguments for creating the attested decrypt function
|
|
27
|
+
* @returns A function that can decrypt handles and return an attestation
|
|
28
|
+
* @throws {AttestedDecryptError} If the creation fails
|
|
29
|
+
*/
|
|
30
|
+
export declare function attestedDecrypt({ handles, backoffConfig, chainId, kmsQuorumClient, }: {
|
|
31
|
+
handles: HexString[];
|
|
32
|
+
backoffConfig?: Partial<BackoffConfig> | undefined;
|
|
33
|
+
chainId: SupportedChainId;
|
|
34
|
+
kmsQuorumClient: KmsQuorumClient;
|
|
35
|
+
}): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
|
|
28
36
|
/**
|
|
29
37
|
* Decrypt multiple handles in a single attested request.
|
|
30
38
|
* Returns an array of attestations aligned with the response ordering.
|
|
@@ -33,14 +41,14 @@ export interface IncoLiteAttestedDecryptorArgs {
|
|
|
33
41
|
* @returns A function that can decrypt handles and return an attestation
|
|
34
42
|
* @throws {AttestedDecryptError} If the creation fails
|
|
35
43
|
*/
|
|
36
|
-
export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair,
|
|
44
|
+
export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, }: {
|
|
37
45
|
handles: HexString[];
|
|
38
46
|
backoffConfig?: Partial<BackoffConfig> | undefined;
|
|
39
47
|
walletClient: WalletClient<Transport, Chain, Account>;
|
|
40
48
|
chainId: SupportedChainId;
|
|
41
49
|
reencryptPubKey: Uint8Array;
|
|
42
50
|
reencryptKeypair: Secp256k1Keypair;
|
|
43
|
-
|
|
51
|
+
kmsQuorumClient: KmsQuorumClient;
|
|
44
52
|
}): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
|
|
45
53
|
/**
|
|
46
54
|
* Decrypt multiple handles in a single attested request.
|
|
@@ -50,14 +58,14 @@ export declare function attestedDecrypt({ handles, backoffConfig, walletClient,
|
|
|
50
58
|
* @returns A function that can decrypt handles and return an attestation
|
|
51
59
|
* @throws {AttestedDecryptError} If the creation fails
|
|
52
60
|
*/
|
|
53
|
-
export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey,
|
|
61
|
+
export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, kmsQuorumClient, }: {
|
|
54
62
|
handles: HexString[];
|
|
55
63
|
backoffConfig?: Partial<BackoffConfig> | undefined;
|
|
56
64
|
walletClient: WalletClient<Transport, Chain, Account>;
|
|
57
65
|
chainId: SupportedChainId;
|
|
58
66
|
reencryptPubKey: Uint8Array;
|
|
59
67
|
reencryptKeypair?: never;
|
|
60
|
-
|
|
68
|
+
kmsQuorumClient: KmsQuorumClient;
|
|
61
69
|
}): Promise<Array<EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>>>;
|
|
62
70
|
/**
|
|
63
71
|
* Decrypt multiple handles in a single attested request.
|
|
@@ -67,12 +75,19 @@ export declare function attestedDecrypt({ handles, backoffConfig, walletClient,
|
|
|
67
75
|
* @returns A function that can decrypt handles and return an attestation
|
|
68
76
|
* @throws {AttestedDecryptError} If the creation fails
|
|
69
77
|
*/
|
|
70
|
-
export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId,
|
|
78
|
+
export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, kmsQuorumClient, }: {
|
|
71
79
|
handles: HexString[];
|
|
72
80
|
backoffConfig?: Partial<BackoffConfig> | undefined;
|
|
73
81
|
walletClient: WalletClient<Transport, Chain, Account>;
|
|
74
82
|
chainId: SupportedChainId;
|
|
75
83
|
reencryptPubKey?: never;
|
|
76
84
|
reencryptKeypair?: never;
|
|
77
|
-
|
|
85
|
+
kmsQuorumClient: KmsQuorumClient;
|
|
78
86
|
}): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
|
|
87
|
+
export declare function decryptEncryptedAttestations(attestations: Array<DecryptionAttestation<EciesScheme, SupportedFheType> | EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>>, reencryptKeypair: Secp256k1Keypair): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
|
|
88
|
+
/**
|
|
89
|
+
* Validates a handle format.
|
|
90
|
+
* @param handle - The handle to validate
|
|
91
|
+
* @throws {AttestedDecryptError} If the handle format is invalid
|
|
92
|
+
*/
|
|
93
|
+
export declare function validateHandle(handle: HexString): void;
|
|
@@ -1,33 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ATTESTED_DECRYPT_DOMAIN_VERSION = exports.ATTESTED_DECRYPT_DOMAIN_NAME = void 0;
|
|
4
|
-
exports.validateHandle = validateHandle;
|
|
5
4
|
exports.attestedDecrypt = attestedDecrypt;
|
|
5
|
+
exports.decryptEncryptedAttestations = decryptEncryptedAttestations;
|
|
6
|
+
exports.validateHandle = validateHandle;
|
|
6
7
|
const protobuf_1 = require("@bufbuild/protobuf");
|
|
7
8
|
const viem_1 = require("viem");
|
|
8
9
|
const binary_js_1 = require("../binary.js");
|
|
9
|
-
const chain_js_1 = require("../chain.js");
|
|
10
10
|
const encryption_js_1 = require("../encryption/encryption.js");
|
|
11
11
|
const kms_service_pb_js_1 = require("../generated/es/inco/kms/lite/v1/kms_service_pb.js");
|
|
12
12
|
const types_pb_js_1 = require("../generated/es/inco/kms/lite/v1/types_pb.js");
|
|
13
13
|
const handle_js_1 = require("../handle.js");
|
|
14
|
-
const
|
|
15
|
-
const reencrypt_js_1 = require("../lite/reencrypt.js");
|
|
14
|
+
const ecies_js_1 = require("../lite/ecies.js");
|
|
16
15
|
const eip712_js_1 = require("../reencryption/eip712.js");
|
|
17
|
-
const retry_js_1 = require("../retry.js");
|
|
18
16
|
const types_js_1 = require("./types.js");
|
|
19
17
|
exports.ATTESTED_DECRYPT_DOMAIN_NAME = 'IncoAttestedDecrypt';
|
|
20
|
-
exports.ATTESTED_DECRYPT_DOMAIN_VERSION = '
|
|
21
|
-
/**
|
|
22
|
-
* Validates a handle format.
|
|
23
|
-
* @param handle - The handle to validate
|
|
24
|
-
* @throws {AttestedDecryptError} If the handle format is invalid
|
|
25
|
-
*/
|
|
26
|
-
function validateHandle(handle) {
|
|
27
|
-
if (!handle.startsWith('0x') || handle.length !== 2 + 2 * 32) {
|
|
28
|
-
throw new types_js_1.AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
|
|
29
|
-
}
|
|
30
|
-
}
|
|
18
|
+
exports.ATTESTED_DECRYPT_DOMAIN_VERSION = '1';
|
|
31
19
|
/**
|
|
32
20
|
* Decrypt multiple handles in a single attested request.
|
|
33
21
|
* Returns an array of attestations aligned with the response ordering.
|
|
@@ -36,103 +24,39 @@ function validateHandle(handle) {
|
|
|
36
24
|
* @returns A function that can decrypt handles and return an attestation
|
|
37
25
|
* @throws {AttestedDecryptError} If the creation fails
|
|
38
26
|
*/
|
|
39
|
-
async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair,
|
|
27
|
+
async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, }) {
|
|
40
28
|
try {
|
|
41
29
|
handles.forEach(validateHandle);
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
chainId: BigInt(chainId),
|
|
47
|
-
primaryType: 'AttestedDecryptRequest',
|
|
48
|
-
primaryTypeFields: [
|
|
49
|
-
{ name: 'handles', type: 'bytes32[]' },
|
|
50
|
-
{ name: 'publicKey', type: 'bytes' },
|
|
51
|
-
],
|
|
52
|
-
message: {
|
|
53
|
-
handles: handles,
|
|
54
|
-
publicKey: (0, viem_1.bytesToHex)(reencryptPubKey ? reencryptPubKey : new Uint8Array()),
|
|
55
|
-
},
|
|
56
|
-
domainName: exports.ATTESTED_DECRYPT_DOMAIN_NAME,
|
|
57
|
-
domainVersion: exports.ATTESTED_DECRYPT_DOMAIN_VERSION,
|
|
30
|
+
const eip712Payload = buildEip712Payload({
|
|
31
|
+
chainId,
|
|
32
|
+
handles,
|
|
33
|
+
...(reencryptPubKey !== undefined ? { reencryptPubKey } : {}),
|
|
58
34
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
},
|
|
69
|
-
},
|
|
35
|
+
let response;
|
|
36
|
+
if (walletClient) {
|
|
37
|
+
const eip712SignatureHex = await signEip712(walletClient, eip712Payload);
|
|
38
|
+
const handlesWithProofs = buildHandlesWithProofs(handles);
|
|
39
|
+
const attestedDecryptRequest = buildAttestedDecryptRequest({
|
|
40
|
+
userAddress: walletClient.account.address,
|
|
41
|
+
handlesWithProofs,
|
|
42
|
+
eip712Signature: (0, viem_1.hexToBytes)(eip712SignatureHex),
|
|
43
|
+
...(reencryptPubKey !== undefined ? { reencryptPubKey } : {}),
|
|
70
44
|
});
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
});
|
|
78
|
-
var response = await (0, retry_js_1.retryWithBackoff)(async () => {
|
|
79
|
-
return await kmsClient.attestedDecrypt(attestedDecryptRequest);
|
|
80
|
-
}, backoffConfig);
|
|
81
|
-
if (!response.decryptionAttestations ||
|
|
82
|
-
response.decryptionAttestations.length === 0) {
|
|
83
|
-
throw new types_js_1.AttestedDecryptError('No decryption attestations in response');
|
|
84
|
-
}
|
|
85
|
-
// If reencryptPubKey is provided without a keypair, we return EncryptedDecryptionAttestation
|
|
86
|
-
if (reencryptPubKey !== undefined) {
|
|
87
|
-
if (reencryptKeypair) {
|
|
88
|
-
response = await (0, reencrypt_js_1.decryptGrpcDecryptResponse)(response, reencryptKeypair);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
return response.decryptionAttestations.map((att) => {
|
|
92
|
-
if (att.value === undefined) {
|
|
93
|
-
throw new types_js_1.AttestedDecryptError('No reencryption in attestation');
|
|
94
|
-
}
|
|
95
|
-
if (att.value.case !== 'reencryption') {
|
|
96
|
-
throw new Error(`Unexpected attestation type: ${att.value.case}, expected 'reencryption'`);
|
|
97
|
-
}
|
|
98
|
-
const reencryption = att.value.value;
|
|
99
|
-
const fheType = reencryption.userCiphertext?.fheType;
|
|
100
|
-
const ct = reencryption.userCiphertext?.ciphertext;
|
|
101
|
-
if (ct == undefined) {
|
|
102
|
-
throw new Error('No ciphertext in reencryption');
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
handle: att.handle,
|
|
106
|
-
encryptedPlaintext: {
|
|
107
|
-
ciphertext: {
|
|
108
|
-
value: (0, viem_1.bytesToHex)(ct),
|
|
109
|
-
scheme: 1, //EciesScheme
|
|
110
|
-
type: fheType,
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
covalidatorSignature: att.signature,
|
|
114
|
-
};
|
|
115
|
-
});
|
|
45
|
+
// Call quorum client which returns aggregated attestations directly
|
|
46
|
+
// The quorum client handles retry logic internally for each KMS client
|
|
47
|
+
response = await kmsQuorumClient.attestedDecrypt(attestedDecryptRequest, backoffConfig);
|
|
48
|
+
// If reencryptPubKey is provided with a keypair, decrypt the encrypted attestations
|
|
49
|
+
if (reencryptPubKey !== undefined && reencryptKeypair) {
|
|
50
|
+
response = await decryptEncryptedAttestations(response, reencryptKeypair);
|
|
116
51
|
}
|
|
117
52
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const plaintext = att.value.value;
|
|
126
|
-
const h = att.handle;
|
|
127
|
-
const handleType = (0, handle_js_1.getHandleType)(h);
|
|
128
|
-
const bigIntValue = (0, binary_js_1.bytesToBigInt)(plaintext.value);
|
|
129
|
-
return {
|
|
130
|
-
handle: h,
|
|
131
|
-
plaintext: (0, encryption_js_1.bigintToPlaintext)(encryption_js_1.encryptionSchemes.ecies, handleType, bigIntValue),
|
|
132
|
-
covalidatorSignature: att.signature,
|
|
133
|
-
};
|
|
134
|
-
});
|
|
135
|
-
return results;
|
|
53
|
+
else {
|
|
54
|
+
const attestedRevealRequest = (0, protobuf_1.create)(kms_service_pb_js_1.AttestedRevealRequestSchema, {
|
|
55
|
+
handles: handles,
|
|
56
|
+
});
|
|
57
|
+
response = await kmsQuorumClient.attestedReveal(attestedRevealRequest, backoffConfig);
|
|
58
|
+
}
|
|
59
|
+
return response;
|
|
136
60
|
}
|
|
137
61
|
catch (error) {
|
|
138
62
|
if (error instanceof types_js_1.AttestedDecryptError) {
|
|
@@ -141,4 +65,79 @@ async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId,
|
|
|
141
65
|
throw new types_js_1.AttestedDecryptError('Failed to decrypt handles', error);
|
|
142
66
|
}
|
|
143
67
|
}
|
|
144
|
-
|
|
68
|
+
// Small helpers to make the main flow readable
|
|
69
|
+
function buildEip712Payload(params) {
|
|
70
|
+
return (0, eip712_js_1.createEIP712Payload)({
|
|
71
|
+
chainId: BigInt(params.chainId),
|
|
72
|
+
primaryType: 'AttestedDecryptRequest',
|
|
73
|
+
primaryTypeFields: [
|
|
74
|
+
{ name: 'handles', type: 'bytes32[]' },
|
|
75
|
+
{ name: 'publicKey', type: 'bytes' },
|
|
76
|
+
],
|
|
77
|
+
message: {
|
|
78
|
+
handles: params.handles,
|
|
79
|
+
publicKey: (0, viem_1.bytesToHex)(params.reencryptPubKey ? params.reencryptPubKey : new Uint8Array()),
|
|
80
|
+
},
|
|
81
|
+
domainName: exports.ATTESTED_DECRYPT_DOMAIN_NAME,
|
|
82
|
+
domainVersion: exports.ATTESTED_DECRYPT_DOMAIN_VERSION,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
async function signEip712(walletClient, eip712Payload) {
|
|
86
|
+
return await walletClient.signTypedData(eip712Payload);
|
|
87
|
+
}
|
|
88
|
+
function buildHandlesWithProofs(handles) {
|
|
89
|
+
return handles.map((handle) => {
|
|
90
|
+
return (0, protobuf_1.create)(types_pb_js_1.HandleWithProofSchema, {
|
|
91
|
+
handle: handle,
|
|
92
|
+
aclProof: {
|
|
93
|
+
proof: {
|
|
94
|
+
case: 'incoLiteBasicAclProof',
|
|
95
|
+
value: {},
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function buildAttestedDecryptRequest(params) {
|
|
102
|
+
return (0, protobuf_1.create)(kms_service_pb_js_1.AttestedDecryptRequestSchema, {
|
|
103
|
+
userAddress: params.userAddress,
|
|
104
|
+
handlesWithProofs: params.handlesWithProofs,
|
|
105
|
+
eip712Signature: params.eip712Signature,
|
|
106
|
+
reencryptPubKey: params.reencryptPubKey
|
|
107
|
+
? params.reencryptPubKey
|
|
108
|
+
: new Uint8Array(),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
async function decryptEncryptedAttestations(attestations, reencryptKeypair) {
|
|
112
|
+
return Promise.all(attestations.map(async (att) => {
|
|
113
|
+
// If already a plaintext attestation, return as-is
|
|
114
|
+
if ('plaintext' in att && att.plaintext !== undefined) {
|
|
115
|
+
return att;
|
|
116
|
+
}
|
|
117
|
+
// Otherwise, decrypt the encrypted attestation
|
|
118
|
+
if ('encryptedPlaintext' in att && att.encryptedPlaintext !== undefined) {
|
|
119
|
+
const encryptedAtt = att;
|
|
120
|
+
const ct = (0, viem_1.hexToBytes)(encryptedAtt.encryptedPlaintext.ciphertext.value);
|
|
121
|
+
const plaintextBytes = await (0, ecies_js_1.decrypt)(reencryptKeypair, ct);
|
|
122
|
+
const bigIntValue = (0, binary_js_1.bytesToBigInt)(plaintextBytes);
|
|
123
|
+
const handleType = (0, handle_js_1.getHandleType)(encryptedAtt.handle);
|
|
124
|
+
return {
|
|
125
|
+
handle: encryptedAtt.handle,
|
|
126
|
+
plaintext: (0, encryption_js_1.bigintToPlaintext)(encryption_js_1.encryptionSchemes.ecies, handleType, bigIntValue),
|
|
127
|
+
covalidatorSignatures: encryptedAtt.covalidatorSignatures,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
throw new types_js_1.AttestedDecryptError('Attestation is neither plaintext nor encrypted');
|
|
131
|
+
}));
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Validates a handle format.
|
|
135
|
+
* @param handle - The handle to validate
|
|
136
|
+
* @throws {AttestedDecryptError} If the handle format is invalid
|
|
137
|
+
*/
|
|
138
|
+
function validateHandle(handle) {
|
|
139
|
+
if (!handle.startsWith('0x') || handle.length !== 2 + 2 * 32) {
|
|
140
|
+
throw new types_js_1.AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2SkEsMENBaUZDO0FBbUVELG9FQTBDQztBQU9ELHdDQU1DO0FBeFdELGlEQUE0QztBQUU1QywrQkFBOEM7QUFDOUMsNENBQTZEO0FBRTdELCtEQUtxQztBQUNyQywwRkFLNEQ7QUFDNUQsOEVBR3NEO0FBQ3RELDRDQUE2QztBQUc3QywrQ0FBMkM7QUFDM0MseURBQWdFO0FBRWhFLHlDQUlvQjtBQUVQLFFBQUEsNEJBQTRCLEdBQUcscUJBQXFCLENBQUM7QUFDckQsUUFBQSwrQkFBK0IsR0FBRyxHQUFHLENBQUM7QUFtSG5EOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsZUFBZSxDQUFDLEVBQ3BDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FTaEI7SUFNQyxJQUFJLENBQUM7UUFDSCxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO1lBQ3ZDLE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM5RCxDQUFDLENBQUM7UUFFSCxJQUFJLFFBR0gsQ0FBQztRQUVGLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLFVBQVUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFekUsTUFBTSxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUUxRCxNQUFNLHNCQUFzQixHQUFHLDJCQUEy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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HexString } from '../binary.js';
|
|
2
|
-
import { EncryptionScheme, EncryptResultOf, PlaintextOf, SupportedFheType } from '../encryption/encryption.js';
|
|
1
|
+
import type { HexString } from '../binary.js';
|
|
2
|
+
import type { EncryptionScheme, EncryptResultOf, PlaintextOf, SupportedFheType } from '../encryption/encryption.js';
|
|
3
3
|
import type { BackoffConfig } from '../retry.js';
|
|
4
4
|
/**
|
|
5
5
|
* Custom error class for attested decrypt operations.
|
|
@@ -11,12 +11,12 @@ export declare class AttestedDecryptError extends Error {
|
|
|
11
11
|
export type DecryptionAttestation<S extends EncryptionScheme, T extends SupportedFheType> = {
|
|
12
12
|
handle: HexString;
|
|
13
13
|
plaintext: PlaintextOf<S, T>;
|
|
14
|
-
|
|
14
|
+
covalidatorSignatures: Uint8Array[];
|
|
15
15
|
};
|
|
16
16
|
export type EncryptedDecryptionAttestation<S extends EncryptionScheme, T extends SupportedFheType> = {
|
|
17
17
|
handle: HexString;
|
|
18
18
|
encryptedPlaintext: EncryptResultOf<S, T>;
|
|
19
|
-
|
|
19
|
+
covalidatorSignatures: Uint8Array[];
|
|
20
20
|
};
|
|
21
21
|
export type AttestedDecryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: AttestedDecryptFnArgs<S, T>) => Promise<DecryptionAttestation<S, T>>;
|
|
22
22
|
export type AttestedDecryptFnArgs<S extends EncryptionScheme, T extends SupportedFheType> = {
|
|
@@ -118,7 +118,21 @@ export declare const AnyValueSchema: GenMessage<AnyValue>;
|
|
|
118
118
|
*/
|
|
119
119
|
export type Scalar = Message<"inco.covalidator.compute.v1.Scalar"> & {
|
|
120
120
|
/**
|
|
121
|
-
* The type of the scalar
|
|
121
|
+
* The type of the scalar.
|
|
122
|
+
*
|
|
123
|
+
* The possible values are:
|
|
124
|
+
* Bool = 0
|
|
125
|
+
* Uint4 = 1
|
|
126
|
+
* Uint8 = 2
|
|
127
|
+
* Uint16 = 3
|
|
128
|
+
* Uint32 = 4
|
|
129
|
+
* Uint64 = 5
|
|
130
|
+
* Uint128 = 6
|
|
131
|
+
* Uint160 = 7
|
|
132
|
+
* Uint256 = 8
|
|
133
|
+
* Bytes64 = 9
|
|
134
|
+
* Bytes128 = 10
|
|
135
|
+
* Bytes256 = 11
|
|
122
136
|
*
|
|
123
137
|
* @generated from field: int32 type = 1;
|
|
124
138
|
*/
|
|
@@ -44,4 +44,4 @@ exports.ListSchema = (0, codegenv2_1.messageDesc)(exports.file_inco_covalidator_
|
|
|
44
44
|
* Use `create(StoredCryptogramSchema)` to create a new message.
|
|
45
45
|
*/
|
|
46
46
|
exports.StoredCryptogramSchema = (0, codegenv2_1.messageDesc)(exports.file_inco_covalidator_compute_v1_types, 6);
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2VzL2luY28vY292YWxpZGF0b3IvY29tcHV0ZS92MS90eXBlc19wYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUVBQWlFO0FBQ2pFLG9IQUFvSDtBQUNwSCxvQkFBb0I7OztBQUdwQiw0REFBcUU7QUFHckU7O0dBRUc7QUFDVSxRQUFBLHNDQUFzQyxHQUNqRCxJQUFBLG9CQUFRLEVBQUMsazZCQUFrNkIsQ0FBQyxDQUFDO0FBMkIvNkI7OztHQUdHO0FBQ1UsUUFBQSxrQkFBa0IsR0FDN0IsSUFBQSx1QkFBVyxFQUFDLDhDQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBd0J6RDs7O0dBR0c7QUFDVSxRQUFBLHFCQUFxQixHQUNoQyxJQUFBLHVCQUFXLEVBQUMsOENBQXNDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUF3QnpEOzs7R0FHRztBQUNVLFFBQUEsa0JBQWtCLEdBQzdCLElBQUEsdUJBQVcsRUFBQyw4Q0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQTBCekQ7OztHQUdHO0FBQ1UsUUFBQSxjQUFjLEdBQ3pCLElBQUEsdUJBQVcsRUFBQyw4Q0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXFDekQ7OztHQUdHO0FBQ1UsUUFBQSxZQUFZLEdBQ3ZCLElBQUEsdUJBQVcsRUFBQyw4Q0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXVCekQ7OztHQUdHO0FBQ1UsUUFBQSxVQUFVLEdBQ3JCLElBQUEsdUJBQVcsRUFBQyw4Q0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXdCekQ7OztHQUdHO0FBQ1UsUUFBQSxzQkFBc0IsR0FDakMsSUFBQSx1QkFBVyxFQUFDLDhDQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
|
|
2
|
-
import type { TypedCiphertext } from "../../../fhe/v1/types_pb";
|
|
3
2
|
import type { ACLProof, ECIESKeyset, HandleWithProof } from "./types_pb";
|
|
4
3
|
import type { Message } from "@bufbuild/protobuf";
|
|
5
4
|
/**
|
|
@@ -88,7 +87,7 @@ export type AttestedDecryptRequest = Message<"inco.kms.lite.v1.AttestedDecryptRe
|
|
|
88
87
|
* "primaryType": "AttestedDecryptRequest",
|
|
89
88
|
* "domain": {
|
|
90
89
|
* "name": "IncoAttestedDecrypt",
|
|
91
|
-
* "version": "
|
|
90
|
+
* "version": "1",
|
|
92
91
|
* "chainId": "<host_chain_id>",
|
|
93
92
|
* },
|
|
94
93
|
* "message": {
|
|
@@ -169,7 +168,7 @@ export type AttestedComputeRequest = Message<"inco.kms.lite.v1.AttestedComputeRe
|
|
|
169
168
|
* "primaryType": "AttestedComputeRequest",
|
|
170
169
|
* "domain": {
|
|
171
170
|
* "name": "IncoAttestedCompute",
|
|
172
|
-
* "version": "
|
|
171
|
+
* "version": "1",
|
|
173
172
|
* "chainId": "<host_chain_id>",
|
|
174
173
|
* },
|
|
175
174
|
* "message": {
|
|
@@ -298,9 +297,18 @@ export declare const PlaintextSchema: GenMessage<Plaintext>;
|
|
|
298
297
|
*/
|
|
299
298
|
export type Reencryption = Message<"inco.kms.lite.v1.Reencryption"> & {
|
|
300
299
|
/**
|
|
301
|
-
*
|
|
300
|
+
* The ciphertext that was reencrypted to the user's public key.
|
|
301
|
+
*
|
|
302
|
+
* @generated from field: bytes user_ciphertext = 1;
|
|
302
303
|
*/
|
|
303
|
-
userCiphertext
|
|
304
|
+
userCiphertext: Uint8Array;
|
|
305
|
+
/**
|
|
306
|
+
* The handle of the ciphertext, encoded as a 0x-prefixed hex string, any case.
|
|
307
|
+
* TODO scalar declaration.
|
|
308
|
+
*
|
|
309
|
+
* @generated from field: string handle = 2;
|
|
310
|
+
*/
|
|
311
|
+
handle: string;
|
|
304
312
|
};
|
|
305
313
|
/**
|
|
306
314
|
* Describes the message inco.kms.lite.v1.Reencryption.
|
|
@@ -5,12 +5,11 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.KmsService = exports.SupportedScalarBinaryOpSchema = exports.SupportedScalarBinaryOp = exports.DecryptionAttestationSchema = exports.ReencryptionSchema = exports.PlaintextSchema = exports.AttestedComputeResponseSchema = exports.AttestedRevealResponseSchema = exports.AttestedDecryptResponseSchema = exports.AttestedComputeRequestSchema = exports.AttestedRevealRequestSchema = exports.AttestedDecryptRequestSchema = exports.KeyResponseSchema = exports.KeyRequestSchema = exports.file_inco_kms_lite_v1_kms_service = void 0;
|
|
7
7
|
const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
|
|
8
|
-
const types_pb_1 = require("
|
|
9
|
-
const types_pb_2 = require("./types_pb");
|
|
8
|
+
const types_pb_1 = require("./types_pb");
|
|
10
9
|
/**
|
|
11
10
|
* Describes the file inco/kms/lite/v1/kms_service.proto.
|
|
12
11
|
*/
|
|
13
|
-
exports.file_inco_kms_lite_v1_kms_service = (0, codegenv2_1.fileDesc)("
|
|
12
|
+
exports.file_inco_kms_lite_v1_kms_service = (0, codegenv2_1.fileDesc)("CiJpbmNvL2ttcy9saXRlL3YxL2ttc19zZXJ2aWNlLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIgwKCktleVJlcXVlc3QiVQoLS2V5UmVzcG9uc2USLQoGa2V5c2V0GAEgASgLMh0uaW5jby5rbXMubGl0ZS52MS5FQ0lFU0tleXNldBIXCg9zaWduaW5nX2FkZHJlc3MYAiABKAkiowEKFkF0dGVzdGVkRGVjcnlwdFJlcXVlc3QSFAoMdXNlcl9hZGRyZXNzGAEgASgJEhkKEXJlZW5jcnlwdF9wdWJfa2V5GAIgASgMEhgKEGVpcDcxMl9zaWduYXR1cmUYAyABKAwSPgoTaGFuZGxlc193aXRoX3Byb29mcxgEIAMoCzIhLmluY28ua21zLmxpdGUudjEuSGFuZGxlV2l0aFByb29mIigKFUF0dGVzdGVkUmV2ZWFsUmVxdWVzdBIPCgdoYW5kbGVzGAMgAygJItkBChZBdHRlc3RlZENvbXB1dGVSZXF1ZXN0EhQKDHVzZXJfYWRkcmVzcxgBIAEoCRIYChBlaXA3MTJfc2lnbmF0dXJlGAIgASgMEjUKAm9wGAMgASgOMikuaW5jby5rbXMubGl0ZS52MS5TdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBISCgpsaHNfaGFuZGxlGAQgASgJEhUKDXJoc19wbGFpbnRleHQYBSABKAkSLQoJYWNsX3Byb29mGAYgASgLMhouaW5jby5rbXMubGl0ZS52MS5BQ0xQcm9vZiJjChdBdHRlc3RlZERlY3J5cHRSZXNwb25zZRJIChdkZWNyeXB0aW9uX2F0dGVzdGF0aW9ucxgBIAMoCzInLmluY28ua21zLmxpdGUudjEuRGVjcnlwdGlvbkF0dGVzdGF0aW9uImIKFkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2USSAoXZGVjcnlwdGlvbl9hdHRlc3RhdGlvbnMYASADKAsyJy5pbmNvLmttcy5saXRlLnYxLkRlY3J5cHRpb25BdHRlc3RhdGlvbiJiChdBdHRlc3RlZENvbXB1dGVSZXNwb25zZRJHChZkZWNyeXB0aW9uX2F0dGVzdGF0aW9uGAEgASgLMicuaW5jby5rbXMubGl0ZS52MS5EZWNyeXB0aW9uQXR0ZXN0YXRpb24iGgoJUGxhaW50ZXh0Eg0KBXZhbHVlGAEgASgMIjcKDFJlZW5jcnlwdGlvbhIXCg91c2VyX2NpcGhlcnRleHQYASABKAwSDgoGaGFuZGxlGAIgASgJIq0BChVEZWNyeXB0aW9uQXR0ZXN0YXRpb24SDgoGaGFuZGxlGAEgASgJEjAKCXBsYWludGV4dBgCIAEoCzIbLmluY28ua21zLmxpdGUudjEuUGxhaW50ZXh0SAASNgoMcmVlbmNyeXB0aW9uGAMgASgLMh4uaW5jby5rbXMubGl0ZS52MS5SZWVuY3J5cHRpb25IABIRCglzaWduYXR1cmUYBCABKAxCBwoFdmFsdWUqpAIKF1N1cHBvcnRlZFNjYWxhckJpbmFyeU9wEgsKB0ZIRV9BREQQABILCgdGSEVfU1VCEAESCwoHRkhFX01VTBACEgsKB0ZIRV9ESVYQAxILCgdGSEVfUkVNEAQSDwoLRkhFX0JJVF9BTkQQBRIOCgpGSEVfQklUX09SEAYSDwoLRkhFX0JJVF9YT1IQBxILCgdGSEVfU0hMEAgSCwoHRkhFX1NIUhAJEgwKCEZIRV9ST1RMEAoSDAoIRkhFX1JPVFIQCxIKCgZGSEVfRVEQDBIKCgZGSEVfTkUQDRIKCgZGSEVfR0UQDhIKCgZGSEVfR1QQDxIKCgZGSEVfTEUQEBIKCgZGSEVfTFQQERILCgdGSEVfTUlOEBISCwoHRkhFX01BWBATMoUDCgpLbXNTZXJ2aWNlEkIKA0tleRIcLmluY28ua21zLmxpdGUudjEuS2V5UmVxdWVzdBodLmluY28ua21zLmxpdGUudjEuS2V5UmVzcG9uc2USZgoPQXR0ZXN0ZWREZWNyeXB0EiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZERlY3J5cHRSZXF1ZXN0GikuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZERlY3J5cHRSZXNwb25zZRJmCg9BdHRlc3RlZENvbXB1dGUSKC5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkQ29tcHV0ZVJlcXVlc3QaKS5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkQ29tcHV0ZVJlc3BvbnNlEmMKDkF0dGVzdGVkUmV2ZWFsEicuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZFJldmVhbFJlcXVlc3QaKC5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9pbmNvLWZoZXZtL2luY28tbW9ub3JlcG8vY292YWxpZGF0b3Iva21zL3R5cGVzYgZwcm90bzM", [types_pb_1.file_inco_kms_lite_v1_types]);
|
|
14
13
|
/**
|
|
15
14
|
* Describes the message inco.kms.lite.v1.KeyRequest.
|
|
16
15
|
* Use `create(KeyRequestSchema)` to create a new message.
|
|
@@ -163,4 +162,4 @@ exports.SupportedScalarBinaryOpSchema = (0, codegenv2_1.enumDesc)(exports.file_i
|
|
|
163
162
|
* @generated from service inco.kms.lite.v1.KmsService
|
|
164
163
|
*/
|
|
165
164
|
exports.KmsService = (0, codegenv2_1.serviceDesc)(exports.file_inco_kms_lite_v1_kms_service, 0);
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zX3NlcnZpY2VfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2VzL2luY28va21zL2xpdGUvdjEva21zX3NlcnZpY2VfcGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlFQUFpRTtBQUNqRSxvR0FBb0c7QUFDcEcsb0JBQW9COzs7QUFHcEIsNERBQTRGO0FBRTVGLHlDQUF5RDtBQUd6RDs7R0FFRztBQUNVLFFBQUEsaUNBQWlDLEdBQzVDLElBQUEsb0JBQVEsRUFBQyx5K0VBQXkrRSxFQUFFLENBQUMsc0NBQTJCLENBQUMsQ0FBQyxDQUFDO0FBVXJoRjs7O0dBR0c7QUFDVSxRQUFBLGdCQUFnQixHQUMzQixJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUF5QnBEOzs7R0FHRztBQUNVLFFBQUEsaUJBQWlCLEdBQzVCLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXlFcEQ7OztHQUdHO0FBQ1UsUUFBQSw0QkFBNEIsR0FDdkMsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJwRDs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUN0QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFzRnBEOzs7R0FHRztBQUNVLFFBQUEsNEJBQTRCLEdBQ3ZDLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWlCcEQ7OztHQUdHO0FBQ1UsUUFBQSw2QkFBNkIsR0FDeEMsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJwRDs7O0dBR0c7QUFDVSxRQUFBLDRCQUE0QixHQUN2QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFnQnBEOzs7R0FHRztBQUNVLFFBQUEsNkJBQTZCLEdBQ3hDLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWdCcEQ7OztHQUdHO0FBQ1UsUUFBQSxlQUFlLEdBQzFCLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXdCcEQ7OztHQUdHO0FBQ1UsUUFBQSxrQkFBa0IsR0FDN0IsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBNkVwRDs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUN0QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxJQUFZLHVCQW9HWDtBQXBHRCxXQUFZLHVCQUF1QjtJQUNqQzs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILG1GQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILGlGQUFjLENBQUE7SUFFZDs7T0FFRztJQUNILG1GQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDhFQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDhFQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDRFQUFZLENBQUE7SUFFWjs7T0FFRztJQUNILDRFQUFZLENBQUE7QUFDZCxDQUFDLEVBcEdXLHVCQUF1Qix1Q0FBdkIsdUJBQXVCLFFBb0dsQztBQUVEOztHQUVHO0FBQ1UsUUFBQSw2QkFBNkIsR0FDeEMsSUFBQSxvQkFBUSxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWpEOzs7OztHQUtHO0FBQ1UsUUFBQSxVQUFVLEdBK0NyQixJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -1,4 +1,44 @@
|
|
|
1
1
|
export declare const lightningDeployments: readonly [{
|
|
2
|
+
readonly name: "incoLightningPreview_2_0_0__976644394";
|
|
3
|
+
readonly majorVersion: 2;
|
|
4
|
+
readonly deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC";
|
|
5
|
+
readonly pepper: "alphanet";
|
|
6
|
+
readonly executorAddress: "0xc0d693DeEF0A91CE39208676b6da09B822abd199";
|
|
7
|
+
readonly salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc000822f11f6e30f933e76d2a";
|
|
8
|
+
readonly chainId: 84532;
|
|
9
|
+
readonly chainName: "Base Sepolia";
|
|
10
|
+
readonly version: {
|
|
11
|
+
readonly major: 2;
|
|
12
|
+
readonly minor: 0;
|
|
13
|
+
readonly patch: 0;
|
|
14
|
+
readonly shortSalt: "976644394";
|
|
15
|
+
};
|
|
16
|
+
readonly blockNumber: 34459258;
|
|
17
|
+
readonly deployDate: "2025-12-02T14:46:46.026Z";
|
|
18
|
+
readonly commit: "v0.6.9-17-g217794f3-dirty";
|
|
19
|
+
readonly active: true;
|
|
20
|
+
readonly includesPreviewFeatures: true;
|
|
21
|
+
}, {
|
|
22
|
+
readonly name: "incoLightningPreview_1_1_0__725458969";
|
|
23
|
+
readonly majorVersion: 1;
|
|
24
|
+
readonly deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC";
|
|
25
|
+
readonly pepper: "alphanet";
|
|
26
|
+
readonly executorAddress: "0x28676Cd3b10b03b2FDF105Ba280425b45a674F2A";
|
|
27
|
+
readonly salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc004dfbe338c6966a22bcca19";
|
|
28
|
+
readonly chainId: 84532;
|
|
29
|
+
readonly chainName: "Base Sepolia";
|
|
30
|
+
readonly version: {
|
|
31
|
+
readonly major: 1;
|
|
32
|
+
readonly minor: 1;
|
|
33
|
+
readonly patch: 0;
|
|
34
|
+
readonly shortSalt: "725458969";
|
|
35
|
+
};
|
|
36
|
+
readonly blockNumber: 34456535;
|
|
37
|
+
readonly deployDate: "2025-12-02T13:16:00.594Z";
|
|
38
|
+
readonly commit: "v0.6.9-16-g428d1837-dirty";
|
|
39
|
+
readonly active: true;
|
|
40
|
+
readonly includesPreviewFeatures: true;
|
|
41
|
+
}, {
|
|
2
42
|
readonly name: "incoLightningPreview_1_0_2__725458969";
|
|
3
43
|
readonly majorVersion: 1;
|
|
4
44
|
readonly deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC";
|