@inco/js 0.6.9 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +8 -8
  2. package/dist/cjs/advancedacl/session-key.d.ts +39 -26
  3. package/dist/cjs/advancedacl/session-key.js +53 -136
  4. package/dist/cjs/attestedcompute/attested-compute.d.ts +6 -6
  5. package/dist/cjs/attestedcompute/attested-compute.js +5 -35
  6. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +36 -21
  7. package/dist/cjs/attesteddecrypt/attested-decrypt.js +107 -108
  8. package/dist/cjs/attesteddecrypt/types.d.ts +4 -4
  9. package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
  10. package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.js +1 -1
  11. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +13 -5
  12. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +3 -4
  13. package/dist/cjs/generated/lightning.d.ts +40 -0
  14. package/dist/cjs/generated/lightning.js +43 -1
  15. package/dist/cjs/generated/local-node.d.ts +11 -7
  16. package/dist/cjs/generated/local-node.js +28 -8
  17. package/dist/cjs/kms/client.d.ts +8 -4
  18. package/dist/cjs/kms/client.js +9 -4
  19. package/dist/cjs/kms/quorumClient.d.ts +58 -0
  20. package/dist/cjs/kms/quorumClient.js +378 -0
  21. package/dist/cjs/kms/thresholdPromises.d.ts +7 -0
  22. package/dist/cjs/kms/thresholdPromises.js +52 -0
  23. package/dist/cjs/lite/ecies.d.ts +2 -0
  24. package/dist/cjs/lite/ecies.js +5 -2
  25. package/dist/cjs/lite/index.d.ts +0 -1
  26. package/dist/cjs/lite/index.js +1 -2
  27. package/dist/cjs/lite/lightning.d.ts +110 -74
  28. package/dist/cjs/lite/lightning.js +272 -127
  29. package/dist/cjs/local/local-node.d.ts +1 -2
  30. package/dist/cjs/local/local-node.js +2 -3
  31. package/dist/cjs/test/mocks.d.ts +3 -0
  32. package/dist/cjs/test/mocks.js +19 -1
  33. package/dist/cjs/viem.d.ts +2 -4
  34. package/dist/cjs/viem.js +6 -2
  35. package/dist/esm/advancedacl/session-key.d.ts +39 -26
  36. package/dist/esm/advancedacl/session-key.js +44 -126
  37. package/dist/esm/attestedcompute/attested-compute.d.ts +6 -6
  38. package/dist/esm/attestedcompute/attested-compute.js +6 -36
  39. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +36 -21
  40. package/dist/esm/attesteddecrypt/attested-decrypt.js +106 -108
  41. package/dist/esm/attesteddecrypt/types.d.ts +4 -4
  42. package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
  43. package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js +1 -1
  44. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +13 -5
  45. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +2 -3
  46. package/dist/esm/generated/lightning.d.ts +40 -0
  47. package/dist/esm/generated/lightning.js +43 -1
  48. package/dist/esm/generated/local-node.d.ts +11 -7
  49. package/dist/esm/generated/local-node.js +28 -8
  50. package/dist/esm/kms/client.d.ts +8 -4
  51. package/dist/esm/kms/client.js +8 -4
  52. package/dist/esm/kms/quorumClient.d.ts +58 -0
  53. package/dist/esm/kms/quorumClient.js +374 -0
  54. package/dist/esm/kms/thresholdPromises.d.ts +7 -0
  55. package/dist/esm/kms/thresholdPromises.js +49 -0
  56. package/dist/esm/lite/ecies.d.ts +2 -0
  57. package/dist/esm/lite/ecies.js +4 -2
  58. package/dist/esm/lite/index.d.ts +0 -1
  59. package/dist/esm/lite/index.js +1 -2
  60. package/dist/esm/lite/lightning.d.ts +110 -74
  61. package/dist/esm/lite/lightning.js +276 -131
  62. package/dist/esm/local/local-node.d.ts +1 -2
  63. package/dist/esm/local/local-node.js +2 -3
  64. package/dist/esm/test/mocks.d.ts +3 -0
  65. package/dist/esm/test/mocks.js +17 -1
  66. package/dist/esm/viem.d.ts +2 -4
  67. package/dist/esm/viem.js +6 -2
  68. package/dist/types/advancedacl/session-key.d.ts +39 -26
  69. package/dist/types/attestedcompute/attested-compute.d.ts +6 -6
  70. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +36 -21
  71. package/dist/types/attesteddecrypt/types.d.ts +4 -4
  72. package/dist/types/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
  73. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +13 -5
  74. package/dist/types/generated/lightning.d.ts +40 -0
  75. package/dist/types/generated/local-node.d.ts +11 -7
  76. package/dist/types/kms/client.d.ts +8 -4
  77. package/dist/types/kms/quorumClient.d.ts +58 -0
  78. package/dist/types/kms/thresholdPromises.d.ts +7 -0
  79. package/dist/types/lite/ecies.d.ts +2 -0
  80. package/dist/types/lite/index.d.ts +0 -1
  81. package/dist/types/lite/lightning.d.ts +110 -74
  82. package/dist/types/local/local-node.d.ts +1 -2
  83. package/dist/types/test/mocks.d.ts +3 -0
  84. package/dist/types/viem.d.ts +2 -4
  85. package/package.json +6 -3
  86. package/dist/cjs/attestedreveal/attested-reveal.d.ts +0 -21
  87. package/dist/cjs/attestedreveal/attested-reveal.js +0 -69
  88. package/dist/cjs/attestedreveal/index.d.ts +0 -1
  89. package/dist/cjs/attestedreveal/index.js +0 -18
  90. package/dist/cjs/attestedreveal/types.d.ts +0 -7
  91. package/dist/cjs/attestedreveal/types.js +0 -16
  92. package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
  93. package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.js +0 -118
  94. package/dist/cjs/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
  95. package/dist/cjs/generated/es/inco/fhe/v1/types_pb.js +0 -136
  96. package/dist/cjs/lite/reencrypt.d.ts +0 -21
  97. package/dist/cjs/lite/reencrypt.js +0 -141
  98. package/dist/esm/attestedreveal/attested-reveal.d.ts +0 -21
  99. package/dist/esm/attestedreveal/attested-reveal.js +0 -66
  100. package/dist/esm/attestedreveal/index.d.ts +0 -1
  101. package/dist/esm/attestedreveal/index.js +0 -2
  102. package/dist/esm/attestedreveal/types.d.ts +0 -7
  103. package/dist/esm/attestedreveal/types.js +0 -12
  104. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
  105. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +0 -115
  106. package/dist/esm/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
  107. package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +0 -133
  108. package/dist/esm/lite/reencrypt.d.ts +0 -21
  109. package/dist/esm/lite/reencrypt.js +0 -131
  110. package/dist/types/attestedreveal/attested-reveal.d.ts +0 -21
  111. package/dist/types/attestedreveal/index.d.ts +0 -1
  112. package/dist/types/attestedreveal/types.d.ts +0 -7
  113. package/dist/types/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
  114. package/dist/types/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
  115. 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 type { KmsClient } from '../kms/client.js';
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 = "0.1.0";
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 connect RPC endpoint or client instance */
24
- kmsConnectRpcEndpointOrClient?: string | KmsClient;
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, kmsConnectRpcEndpointOrClient, }: {
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
- kmsConnectRpcEndpointOrClient?: string | KmsClient;
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, kmsConnectRpcEndpointOrClient, }: {
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
- kmsConnectRpcEndpointOrClient?: string | KmsClient;
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, kmsConnectRpcEndpointOrClient, }: {
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
- kmsConnectRpcEndpointOrClient?: string | KmsClient;
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,28 +1,15 @@
1
1
  import { create } from '@bufbuild/protobuf';
2
2
  import { bytesToHex, hexToBytes } from 'viem';
3
3
  import { bytesToBigInt } from '../binary.js';
4
- import { getSupportedChain } from '../chain.js';
5
4
  import { bigintToPlaintext, encryptionSchemes, } from '../encryption/encryption.js';
6
- import { AttestedDecryptRequestSchema, } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
5
+ import { AttestedDecryptRequestSchema, AttestedRevealRequestSchema, } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
7
6
  import { HandleWithProofSchema, } from '../generated/es/inco/kms/lite/v1/types_pb.js';
8
7
  import { getHandleType } from '../handle.js';
9
- import { defaultCovalidatorGrpc, getKmsClient } from '../kms/client.js';
10
- import { decryptGrpcDecryptResponse } from '../lite/reencrypt.js';
8
+ import { decrypt } from '../lite/ecies.js';
11
9
  import { createEIP712Payload } from '../reencryption/eip712.js';
12
- import { retryWithBackoff } from '../retry.js';
13
10
  import { AttestedDecryptError, } from './types.js';
14
11
  export const ATTESTED_DECRYPT_DOMAIN_NAME = 'IncoAttestedDecrypt';
15
- export const ATTESTED_DECRYPT_DOMAIN_VERSION = '0.1.0';
16
- /**
17
- * Validates a handle format.
18
- * @param handle - The handle to validate
19
- * @throws {AttestedDecryptError} If the handle format is invalid
20
- */
21
- export function validateHandle(handle) {
22
- if (!handle.startsWith('0x') || handle.length !== 2 + 2 * 32) {
23
- throw new AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
24
- }
25
- }
12
+ export const ATTESTED_DECRYPT_DOMAIN_VERSION = '1';
26
13
  /**
27
14
  * Decrypt multiple handles in a single attested request.
28
15
  * Returns an array of attestations aligned with the response ordering.
@@ -31,103 +18,39 @@ export function validateHandle(handle) {
31
18
  * @returns A function that can decrypt handles and return an attestation
32
19
  * @throws {AttestedDecryptError} If the creation fails
33
20
  */
34
- export async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsConnectRpcEndpointOrClient, }) {
21
+ export async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, }) {
35
22
  try {
36
23
  handles.forEach(validateHandle);
37
- const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient ||
38
- defaultCovalidatorGrpc(getSupportedChain(chainId)));
39
- // Create the EIP712 payload for the handles to decrypt
40
- const eip712Payload = createEIP712Payload({
41
- chainId: BigInt(chainId),
42
- primaryType: 'AttestedDecryptRequest',
43
- primaryTypeFields: [
44
- { name: 'handles', type: 'bytes32[]' },
45
- { name: 'publicKey', type: 'bytes' },
46
- ],
47
- message: {
48
- handles: handles,
49
- publicKey: bytesToHex(reencryptPubKey ? reencryptPubKey : new Uint8Array()),
50
- },
51
- domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
52
- domainVersion: ATTESTED_DECRYPT_DOMAIN_VERSION,
24
+ const eip712Payload = buildEip712Payload({
25
+ chainId,
26
+ handles,
27
+ ...(reencryptPubKey !== undefined ? { reencryptPubKey } : {}),
53
28
  });
54
- // Sign the EIP712 message
55
- const eip712Signature = await walletClient.signTypedData(eip712Payload);
56
- const handlesWithProofs = handles.map((handle) => {
57
- return create(HandleWithProofSchema, {
58
- handle: handle,
59
- aclProof: {
60
- proof: {
61
- case: 'incoLiteBasicAclProof',
62
- value: {},
63
- },
64
- },
29
+ let response;
30
+ if (walletClient) {
31
+ const eip712SignatureHex = await signEip712(walletClient, eip712Payload);
32
+ const handlesWithProofs = buildHandlesWithProofs(handles);
33
+ const attestedDecryptRequest = buildAttestedDecryptRequest({
34
+ userAddress: walletClient.account.address,
35
+ handlesWithProofs,
36
+ eip712Signature: hexToBytes(eip712SignatureHex),
37
+ ...(reencryptPubKey !== undefined ? { reencryptPubKey } : {}),
65
38
  });
66
- });
67
- const attestedDecryptRequest = create(AttestedDecryptRequestSchema, {
68
- userAddress: walletClient.account.address,
69
- handlesWithProofs: handlesWithProofs,
70
- eip712Signature: hexToBytes(eip712Signature),
71
- reencryptPubKey: reencryptPubKey ? reencryptPubKey : new Uint8Array(),
72
- });
73
- var response = await retryWithBackoff(async () => {
74
- return await kmsClient.attestedDecrypt(attestedDecryptRequest);
75
- }, backoffConfig);
76
- if (!response.decryptionAttestations ||
77
- response.decryptionAttestations.length === 0) {
78
- throw new AttestedDecryptError('No decryption attestations in response');
79
- }
80
- // If reencryptPubKey is provided without a keypair, we return EncryptedDecryptionAttestation
81
- if (reencryptPubKey !== undefined) {
82
- if (reencryptKeypair) {
83
- response = await decryptGrpcDecryptResponse(response, reencryptKeypair);
84
- }
85
- else {
86
- return response.decryptionAttestations.map((att) => {
87
- if (att.value === undefined) {
88
- throw new AttestedDecryptError('No reencryption in attestation');
89
- }
90
- if (att.value.case !== 'reencryption') {
91
- throw new Error(`Unexpected attestation type: ${att.value.case}, expected 'reencryption'`);
92
- }
93
- const reencryption = att.value.value;
94
- const fheType = reencryption.userCiphertext?.fheType;
95
- const ct = reencryption.userCiphertext?.ciphertext;
96
- if (ct == undefined) {
97
- throw new Error('No ciphertext in reencryption');
98
- }
99
- return {
100
- handle: att.handle,
101
- encryptedPlaintext: {
102
- ciphertext: {
103
- value: bytesToHex(ct),
104
- scheme: 1, //EciesScheme
105
- type: fheType,
106
- },
107
- },
108
- covalidatorSignature: att.signature,
109
- };
110
- });
39
+ // Call quorum client which returns aggregated attestations directly
40
+ // The quorum client handles retry logic internally for each KMS client
41
+ response = await kmsQuorumClient.attestedDecrypt(attestedDecryptRequest, backoffConfig);
42
+ // If reencryptPubKey is provided with a keypair, decrypt the encrypted attestations
43
+ if (reencryptPubKey !== undefined && reencryptKeypair) {
44
+ response = await decryptEncryptedAttestations(response, reencryptKeypair);
111
45
  }
112
46
  }
113
- const results = response.decryptionAttestations.map((att) => {
114
- if (att.value === undefined) {
115
- throw new AttestedDecryptError('No plaintext in attestation');
116
- }
117
- if (att.value.case !== 'plaintext') {
118
- throw new Error(`Unexpected attestation type: ${att.value.case}, expected 'plaintext'`);
119
- }
120
- const plaintext = att.value.value;
121
- const h = att.handle;
122
- const handleType = getHandleType(h);
123
- const bigIntValue = bytesToBigInt(plaintext.value);
124
- return {
125
- handle: h,
126
- plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
127
- covalidatorSignature: att.signature,
128
- };
129
- });
130
- return results;
47
+ else {
48
+ const attestedRevealRequest = create(AttestedRevealRequestSchema, {
49
+ handles: handles,
50
+ });
51
+ response = await kmsQuorumClient.attestedReveal(attestedRevealRequest, backoffConfig);
52
+ }
53
+ return response;
131
54
  }
132
55
  catch (error) {
133
56
  if (error instanceof AttestedDecryptError) {
@@ -136,4 +59,79 @@ export async function attestedDecrypt({ handles, backoffConfig, walletClient, ch
136
59
  throw new AttestedDecryptError('Failed to decrypt handles', error);
137
60
  }
138
61
  }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBYSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsaUJBQWlCLEdBR2xCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUVMLDRCQUE0QixHQUc3QixNQUFNLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUNMLG9CQUFvQixHQUdyQixNQUFNLFlBQVksQ0FBQztBQUVwQixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxPQUFPLENBQUM7QUFFdkQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBaUI7SUFDOUMsSUFBSSxDQUFDLE1BQU0s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
62
+ // Small helpers to make the main flow readable
63
+ function buildEip712Payload(params) {
64
+ return createEIP712Payload({
65
+ chainId: BigInt(params.chainId),
66
+ primaryType: 'AttestedDecryptRequest',
67
+ primaryTypeFields: [
68
+ { name: 'handles', type: 'bytes32[]' },
69
+ { name: 'publicKey', type: 'bytes' },
70
+ ],
71
+ message: {
72
+ handles: params.handles,
73
+ publicKey: bytesToHex(params.reencryptPubKey ? params.reencryptPubKey : new Uint8Array()),
74
+ },
75
+ domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
76
+ domainVersion: ATTESTED_DECRYPT_DOMAIN_VERSION,
77
+ });
78
+ }
79
+ async function signEip712(walletClient, eip712Payload) {
80
+ return await walletClient.signTypedData(eip712Payload);
81
+ }
82
+ function buildHandlesWithProofs(handles) {
83
+ return handles.map((handle) => {
84
+ return create(HandleWithProofSchema, {
85
+ handle: handle,
86
+ aclProof: {
87
+ proof: {
88
+ case: 'incoLiteBasicAclProof',
89
+ value: {},
90
+ },
91
+ },
92
+ });
93
+ });
94
+ }
95
+ function buildAttestedDecryptRequest(params) {
96
+ return create(AttestedDecryptRequestSchema, {
97
+ userAddress: params.userAddress,
98
+ handlesWithProofs: params.handlesWithProofs,
99
+ eip712Signature: params.eip712Signature,
100
+ reencryptPubKey: params.reencryptPubKey
101
+ ? params.reencryptPubKey
102
+ : new Uint8Array(),
103
+ });
104
+ }
105
+ export async function decryptEncryptedAttestations(attestations, reencryptKeypair) {
106
+ return Promise.all(attestations.map(async (att) => {
107
+ // If already a plaintext attestation, return as-is
108
+ if ('plaintext' in att && att.plaintext !== undefined) {
109
+ return att;
110
+ }
111
+ // Otherwise, decrypt the encrypted attestation
112
+ if ('encryptedPlaintext' in att && att.encryptedPlaintext !== undefined) {
113
+ const encryptedAtt = att;
114
+ const ct = hexToBytes(encryptedAtt.encryptedPlaintext.ciphertext.value);
115
+ const plaintextBytes = await decrypt(reencryptKeypair, ct);
116
+ const bigIntValue = bytesToBigInt(plaintextBytes);
117
+ const handleType = getHandleType(encryptedAtt.handle);
118
+ return {
119
+ handle: encryptedAtt.handle,
120
+ plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
121
+ covalidatorSignatures: encryptedAtt.covalidatorSignatures,
122
+ };
123
+ }
124
+ throw new AttestedDecryptError('Attestation is neither plaintext nor encrypted');
125
+ }));
126
+ }
127
+ /**
128
+ * Validates a handle format.
129
+ * @param handle - The handle to validate
130
+ * @throws {AttestedDecryptError} If the handle format is invalid
131
+ */
132
+ export function validateHandle(handle) {
133
+ if (!handle.startsWith('0x') || handle.length !== 2 + 2 * 32) {
134
+ throw new AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
135
+ }
136
+ }
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFFN0QsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixpQkFBaUIsR0FFbEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBRUwsNEJBQTRCLEVBRTVCLDJCQUEyQixHQUM1QixNQUFNLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sRUFFTCxxQkFBcUIsR0FDdEIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQ0wsb0JBQW9CLEdBR3JCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLHFCQUFxQixDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQztBQW1IbkQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLEVBQ3BDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FTaEI7SUFNQyxJQUFJLENBQUM7UUFDSCxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO1lBQ3ZDLE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM5RCxDQUFDLENBQUM7UUFFSCxJQUFJLFFBR0gsQ0FBQztRQUVGLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLFVBQVUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFekUsTUFBTSxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUUxRCxNQUFNLHNCQUFzQixHQUFHLDJCQUEyQixDQUFDO2dCQUN6RCxXQUFXLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2dCQUN6QyxpQkFBaUI7Z0JBQ2pCLGVBQWUsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUM7Z0JBQy9DLEdBQUcsQ0FBQyxlQUFlLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDOUQsQ0FBQyxDQUFDO1lBRUgsb0VBQW9FO1lBQ3BFLHVFQUF1RTtZQUN2RSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUM5QyxzQkFBc0IsRUFDdEIsYUFBYSxDQUNkLENBQUM7WUFDRixvRkFBb0Y7WUFDcEYsSUFBSSxlQUFlLEtBQUssU0FBUyxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3RELFFBQVEsR0FBRyxNQUFNLDRCQUE0QixDQUMzQyxRQUFRLEVBQ1IsZ0JBQWdCLENBQ2pCLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLHFCQUFxQixHQUEwQixNQUFNLENBQ3pELDJCQUEyQixFQUMzQjtnQkFDRSxPQUFPLEVBQUUsT0FBTzthQUNqQixDQUNGLENBQUM7WUFDRixRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsY0FBYyxDQUM3QyxxQkFBcUIsRUFDckIsYUFBYSxDQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxvQkFBb0IsRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxvQkFBb0IsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0FBQ0gsQ0FBQztBQUVELCtDQUErQztBQUMvQyxTQUFTLGtCQUFrQixDQUFDLE1BSTNCO0lBQ0MsT0FBTyxtQkFBbUIsQ0FBQztRQUN6QixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDL0IsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxpQkFBaUIsRUFBRTtZQUNqQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN0QyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtTQUNyQztRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixTQUFTLEVBQUUsVUFBVSxDQUNuQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUNuRTtTQUNGO1FBQ0QsVUFBVSxFQUFFLDRCQUE0QjtRQUN4QyxhQUFhLEVBQUUsK0JBQStCO0tBQy9DLENBQUMsQ0FBQztBQUNMLENBQUM7QUFNRCxLQUFLLFVBQVUsVUFBVSxDQUN2QixZQUFxRCxFQUNyRCxhQUF3QztJQUV4QyxPQUFPLE1BQU0sWUFBWSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxPQUFvQjtJQUNsRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRTtZQUNuQyxNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsS0FBSyxFQUFFLEVBQUU7aUJBQ1Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsTUFLcEM7SUFDQyxPQUFPLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRTtRQUMxQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQjtRQUMzQyxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7UUFDdkMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1lBQ3JDLENBQUMsQ0FBQyxNQUFNLENBQUMsZUFBZTtZQUN4QixDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7S0FDckIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsNEJBQTRCLENBQ2hELFlBR0MsRUFDRCxnQkFBa0M7SUFFbEMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM3QixtREFBbUQ7UUFDbkQsSUFBSSxXQUFXLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEQsT0FBTyxHQUEyRCxDQUFDO1FBQ3JFLENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsSUFBSSxvQkFBb0IsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hFLE1BQU0sWUFBWSxHQUFHLEdBR3BCLENBQUM7WUFDRixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4RSxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV0RCxPQUFPO2dCQUNMLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtnQkFDM0IsU0FBUyxFQUFFLGlCQUFpQixDQUMxQixpQkFBaUIsQ0FBQyxLQUFLLEVBQ3ZCLFVBQThCLEVBQzlCLFdBQVcsQ0FDWjtnQkFDRCxxQkFBcUIsRUFBRSxZQUFZLENBQUMscUJBQXFCO2FBQ0YsQ0FBQztRQUM1RCxDQUFDO1FBRUQsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixnREFBZ0QsQ0FDakQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBaUI7SUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQzdELE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsb0VBQW9FLENBQ3JFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyJ9
@@ -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
- covalidatorSignature: Uint8Array;
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
- covalidatorSignature: Uint8Array;
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
  */
@@ -41,4 +41,4 @@ export const ListSchema = /*@__PURE__*/ messageDesc(file_inco_covalidator_comput
41
41
  * Use `create(StoredCryptogramSchema)` to create a new message.
42
42
  */
43
43
  export const StoredCryptogramSchema = /*@__PURE__*/ messageDesc(file_inco_covalidator_compute_v1_types, 6);
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2VzL2luY28vY292YWxpZGF0b3IvY29tcHV0ZS92MS90eXBlc19wYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpRUFBaUU7QUFDakUsb0hBQW9IO0FBQ3BILG9CQUFvQjtBQUdwQixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3JFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQVksYUFBYSxDQUMxRSxRQUFRLENBQUMsazZCQUFrNkIsQ0FBQyxDQUFDO0FBMkIvNkI7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQTZCLGFBQWEsQ0FDdkUsV0FBVyxDQUFDLHNDQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBd0J6RDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZ0MsYUFBYSxDQUM3RSxXQUFXLENBQUMsc0NBQXNDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUF3QnpEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUE2QixhQUFhLENBQ3ZFLFdBQVcsQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQTBCekQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUF5QixhQUFhLENBQy9ELFdBQVcsQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXVCekQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUF1QixhQUFhLENBQzNELFdBQVcsQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXVCekQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFxQixhQUFhLENBQ3ZELFdBQVcsQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXdCekQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWlDLGFBQWEsQ0FDL0UsV0FBVyxDQUFDLHNDQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFDIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2VzL2luY28vY292YWxpZGF0b3IvY29tcHV0ZS92MS90eXBlc19wYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpRUFBaUU7QUFDakUsb0hBQW9IO0FBQ3BILG9CQUFvQjtBQUdwQixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3JFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQVksYUFBYSxDQUMxRSxRQUFRLENBQUMsazZCQUFrNkIsQ0FBQyxDQUFDO0FBMkIvNkI7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQTZCLGFBQWEsQ0FDdkUsV0FBVyxDQUFDLHNDQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBd0J6RDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZ0MsYUFBYSxDQUM3RSxXQUFXLENBQUMsc0NBQXNDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUF3QnpEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUE2QixhQUFhLENBQ3ZFLFdBQVcsQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQTBCekQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUF5QixhQUFhLENBQy9ELFdBQVcsQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXFDekQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUF1QixhQUFhLENBQzNELFdBQVcsQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXVCekQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFxQixhQUFhLENBQ3ZELFdBQVcsQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXdCekQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWlDLGFBQWEsQ0FDL0UsV0FBVyxDQUFDLHNDQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFDIn0=
@@ -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": "0.1.0",
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": "0.1.0",
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
- * @generated from field: inco.fhe.v1.TypedCiphertext user_ciphertext = 1;
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?: TypedCiphertext;
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.
@@ -2,12 +2,11 @@
2
2
  // @generated from file inco/kms/lite/v1/kms_service.proto (package inco.kms.lite.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
  import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
- import { file_inco_fhe_v1_types } from "../../../fhe/v1/types_pb";
6
5
  import { file_inco_kms_lite_v1_types } from "./types_pb";
7
6
  /**
8
7
  * Describes the file inco/kms/lite/v1/kms_service.proto.
9
8
  */
10
- export const file_inco_kms_lite_v1_kms_service = /*@__PURE__*/ fileDesc("CiJpbmNvL2ttcy9saXRlL3YxL2ttc19zZXJ2aWNlLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIgwKCktleVJlcXVlc3QiVQoLS2V5UmVzcG9uc2USLQoGa2V5c2V0GAEgASgLMh0uaW5jby5rbXMubGl0ZS52MS5FQ0lFU0tleXNldBIXCg9zaWduaW5nX2FkZHJlc3MYAiABKAkiowEKFkF0dGVzdGVkRGVjcnlwdFJlcXVlc3QSFAoMdXNlcl9hZGRyZXNzGAEgASgJEhkKEXJlZW5jcnlwdF9wdWJfa2V5GAIgASgMEhgKEGVpcDcxMl9zaWduYXR1cmUYAyABKAwSPgoTaGFuZGxlc193aXRoX3Byb29mcxgEIAMoCzIhLmluY28ua21zLmxpdGUudjEuSGFuZGxlV2l0aFByb29mIigKFUF0dGVzdGVkUmV2ZWFsUmVxdWVzdBIPCgdoYW5kbGVzGAMgAygJItkBChZBdHRlc3RlZENvbXB1dGVSZXF1ZXN0EhQKDHVzZXJfYWRkcmVzcxgBIAEoCRIYChBlaXA3MTJfc2lnbmF0dXJlGAIgASgMEjUKAm9wGAMgASgOMikuaW5jby5rbXMubGl0ZS52MS5TdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBISCgpsaHNfaGFuZGxlGAQgASgJEhUKDXJoc19wbGFpbnRleHQYBSABKAkSLQoJYWNsX3Byb29mGAYgASgLMhouaW5jby5rbXMubGl0ZS52MS5BQ0xQcm9vZiJjChdBdHRlc3RlZERlY3J5cHRSZXNwb25zZRJIChdkZWNyeXB0aW9uX2F0dGVzdGF0aW9ucxgBIAMoCzInLmluY28ua21zLmxpdGUudjEuRGVjcnlwdGlvbkF0dGVzdGF0aW9uImIKFkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2USSAoXZGVjcnlwdGlvbl9hdHRlc3RhdGlvbnMYASADKAsyJy5pbmNvLmttcy5saXRlLnYxLkRlY3J5cHRpb25BdHRlc3RhdGlvbiJiChdBdHRlc3RlZENvbXB1dGVSZXNwb25zZRJHChZkZWNyeXB0aW9uX2F0dGVzdGF0aW9uGAEgASgLMicuaW5jby5rbXMubGl0ZS52MS5EZWNyeXB0aW9uQXR0ZXN0YXRpb24iGgoJUGxhaW50ZXh0Eg0KBXZhbHVlGAEgASgMIkUKDFJlZW5jcnlwdGlvbhI1Cg91c2VyX2NpcGhlcnRleHQYASABKAsyHC5pbmNvLmZoZS52MS5UeXBlZENpcGhlcnRleHQirQEKFURlY3J5cHRpb25BdHRlc3RhdGlvbhIOCgZoYW5kbGUYASABKAkSMAoJcGxhaW50ZXh0GAIgASgLMhsuaW5jby5rbXMubGl0ZS52MS5QbGFpbnRleHRIABI2CgxyZWVuY3J5cHRpb24YAyABKAsyHi5pbmNvLmttcy5saXRlLnYxLlJlZW5jcnlwdGlvbkgAEhEKCXNpZ25hdHVyZRgEIAEoDEIHCgV2YWx1ZSqkAgoXU3VwcG9ydGVkU2NhbGFyQmluYXJ5T3ASCwoHRkhFX0FERBAAEgsKB0ZIRV9TVUIQARILCgdGSEVfTVVMEAISCwoHRkhFX0RJVhADEgsKB0ZIRV9SRU0QBBIPCgtGSEVfQklUX0FORBAFEg4KCkZIRV9CSVRfT1IQBhIPCgtGSEVfQklUX1hPUhAHEgsKB0ZIRV9TSEwQCBILCgdGSEVfU0hSEAkSDAoIRkhFX1JPVEwQChIMCghGSEVfUk9UUhALEgoKBkZIRV9FURAMEgoKBkZIRV9ORRANEgoKBkZIRV9HRRAOEgoKBkZIRV9HVBAPEgoKBkZIRV9MRRAQEgoKBkZIRV9MVBAREgsKB0ZIRV9NSU4QEhILCgdGSEVfTUFYEBMyhQMKCkttc1NlcnZpY2USQgoDS2V5EhwuaW5jby5rbXMubGl0ZS52MS5LZXlSZXF1ZXN0Gh0uaW5jby5rbXMubGl0ZS52MS5LZXlSZXNwb25zZRJmCg9BdHRlc3RlZERlY3J5cHQSKC5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkRGVjcnlwdFJlcXVlc3QaKS5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkRGVjcnlwdFJlc3BvbnNlEmYKD0F0dGVzdGVkQ29tcHV0ZRIoLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWRDb21wdXRlUmVxdWVzdBopLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWRDb21wdXRlUmVzcG9uc2USYwoOQXR0ZXN0ZWRSZXZlYWwSJy5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkUmV2ZWFsUmVxdWVzdBooLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWRSZXZlYWxSZXNwb25zZUI7WjlnaXRodWIuY29tL2luY28tZmhldm0vaW5jby1tb25vcmVwby9jb3ZhbGlkYXRvci9rbXMvdHlwZXNiBnByb3RvMw", [file_inco_fhe_v1_types, file_inco_kms_lite_v1_types]);
9
+ export const file_inco_kms_lite_v1_kms_service = /*@__PURE__*/ fileDesc("CiJpbmNvL2ttcy9saXRlL3YxL2ttc19zZXJ2aWNlLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIgwKCktleVJlcXVlc3QiVQoLS2V5UmVzcG9uc2USLQoGa2V5c2V0GAEgASgLMh0uaW5jby5rbXMubGl0ZS52MS5FQ0lFU0tleXNldBIXCg9zaWduaW5nX2FkZHJlc3MYAiABKAkiowEKFkF0dGVzdGVkRGVjcnlwdFJlcXVlc3QSFAoMdXNlcl9hZGRyZXNzGAEgASgJEhkKEXJlZW5jcnlwdF9wdWJfa2V5GAIgASgMEhgKEGVpcDcxMl9zaWduYXR1cmUYAyABKAwSPgoTaGFuZGxlc193aXRoX3Byb29mcxgEIAMoCzIhLmluY28ua21zLmxpdGUudjEuSGFuZGxlV2l0aFByb29mIigKFUF0dGVzdGVkUmV2ZWFsUmVxdWVzdBIPCgdoYW5kbGVzGAMgAygJItkBChZBdHRlc3RlZENvbXB1dGVSZXF1ZXN0EhQKDHVzZXJfYWRkcmVzcxgBIAEoCRIYChBlaXA3MTJfc2lnbmF0dXJlGAIgASgMEjUKAm9wGAMgASgOMikuaW5jby5rbXMubGl0ZS52MS5TdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBISCgpsaHNfaGFuZGxlGAQgASgJEhUKDXJoc19wbGFpbnRleHQYBSABKAkSLQoJYWNsX3Byb29mGAYgASgLMhouaW5jby5rbXMubGl0ZS52MS5BQ0xQcm9vZiJjChdBdHRlc3RlZERlY3J5cHRSZXNwb25zZRJIChdkZWNyeXB0aW9uX2F0dGVzdGF0aW9ucxgBIAMoCzInLmluY28ua21zLmxpdGUudjEuRGVjcnlwdGlvbkF0dGVzdGF0aW9uImIKFkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2USSAoXZGVjcnlwdGlvbl9hdHRlc3RhdGlvbnMYASADKAsyJy5pbmNvLmttcy5saXRlLnYxLkRlY3J5cHRpb25BdHRlc3RhdGlvbiJiChdBdHRlc3RlZENvbXB1dGVSZXNwb25zZRJHChZkZWNyeXB0aW9uX2F0dGVzdGF0aW9uGAEgASgLMicuaW5jby5rbXMubGl0ZS52MS5EZWNyeXB0aW9uQXR0ZXN0YXRpb24iGgoJUGxhaW50ZXh0Eg0KBXZhbHVlGAEgASgMIjcKDFJlZW5jcnlwdGlvbhIXCg91c2VyX2NpcGhlcnRleHQYASABKAwSDgoGaGFuZGxlGAIgASgJIq0BChVEZWNyeXB0aW9uQXR0ZXN0YXRpb24SDgoGaGFuZGxlGAEgASgJEjAKCXBsYWludGV4dBgCIAEoCzIbLmluY28ua21zLmxpdGUudjEuUGxhaW50ZXh0SAASNgoMcmVlbmNyeXB0aW9uGAMgASgLMh4uaW5jby5rbXMubGl0ZS52MS5SZWVuY3J5cHRpb25IABIRCglzaWduYXR1cmUYBCABKAxCBwoFdmFsdWUqpAIKF1N1cHBvcnRlZFNjYWxhckJpbmFyeU9wEgsKB0ZIRV9BREQQABILCgdGSEVfU1VCEAESCwoHRkhFX01VTBACEgsKB0ZIRV9ESVYQAxILCgdGSEVfUkVNEAQSDwoLRkhFX0JJVF9BTkQQBRIOCgpGSEVfQklUX09SEAYSDwoLRkhFX0JJVF9YT1IQBxILCgdGSEVfU0hMEAgSCwoHRkhFX1NIUhAJEgwKCEZIRV9ST1RMEAoSDAoIRkhFX1JPVFIQCxIKCgZGSEVfRVEQDBIKCgZGSEVfTkUQDRIKCgZGSEVfR0UQDhIKCgZGSEVfR1QQDxIKCgZGSEVfTEUQEBIKCgZGSEVfTFQQERILCgdGSEVfTUlOEBISCwoHRkhFX01BWBATMoUDCgpLbXNTZXJ2aWNlEkIKA0tleRIcLmluY28ua21zLmxpdGUudjEuS2V5UmVxdWVzdBodLmluY28ua21zLmxpdGUudjEuS2V5UmVzcG9uc2USZgoPQXR0ZXN0ZWREZWNyeXB0EiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZERlY3J5cHRSZXF1ZXN0GikuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZERlY3J5cHRSZXNwb25zZRJmCg9BdHRlc3RlZENvbXB1dGUSKC5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkQ29tcHV0ZVJlcXVlc3QaKS5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkQ29tcHV0ZVJlc3BvbnNlEmMKDkF0dGVzdGVkUmV2ZWFsEicuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZFJldmVhbFJlcXVlc3QaKC5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9pbmNvLWZoZXZtL2luY28tbW9ub3JlcG8vY292YWxpZGF0b3Iva21zL3R5cGVzYgZwcm90bzM", [file_inco_kms_lite_v1_types]);
11
10
  /**
12
11
  * Describes the message inco.kms.lite.v1.KeyRequest.
13
12
  * Use `create(KeyRequestSchema)` to create a new message.
@@ -160,4 +159,4 @@ export const SupportedScalarBinaryOpSchema = /*@__PURE__*/ enumDesc(file_inco_km
160
159
  * @generated from service inco.kms.lite.v1.KmsService
161
160
  */
162
161
  export const KmsService = /*@__PURE__*/ serviceDesc(file_inco_kms_lite_v1_kms_service, 0);
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zX3NlcnZpY2VfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2VzL2luY28va21zL2xpdGUvdjEva21zX3NlcnZpY2VfcGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUVBQWlFO0FBQ2pFLG9HQUFvRztBQUNwRyxvQkFBb0I7QUFHcEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd6RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFZLGFBQWEsQ0FDckUsUUFBUSxDQUFDLDQvRUFBNC9FLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDLENBQUM7QUFVaGtGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUEyQixhQUFhLENBQ25FLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXlCcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQTRCLGFBQWEsQ0FDckUsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBeUVwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBdUMsYUFBYSxDQUMzRixXQUFXLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFpQnBEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFzQyxhQUFhLENBQ3pGLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXNGcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQXVDLGFBQWEsQ0FDM0YsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBd0MsYUFBYSxDQUM3RixXQUFXLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFpQnBEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUF1QyxhQUFhLENBQzNGLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWdCcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQXdDLGFBQWEsQ0FDN0YsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBZ0JwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQTBCLGFBQWEsQ0FDakUsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBY3BEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUE2QixhQUFhLENBQ3ZFLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQTZFcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQXNDLGFBQWEsQ0FDekYsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRXJEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksdUJBb0dYO0FBcEdELFdBQVksdUJBQXVCO0lBQ2pDOztPQUVHO0lBQ0gsMkVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMkVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMkVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMkVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMkVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsbUZBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsaUZBQWMsQ0FBQTtJQUVkOztPQUVHO0lBQ0gsbUZBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsMkVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMkVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsOEVBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsOEVBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMEVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMEVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMEVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMEVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMEVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMEVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsNEVBQVksQ0FBQTtJQUVaOztPQUVHO0lBQ0gsNEVBQVksQ0FBQTtBQUNkLENBQUMsRUFwR1csdUJBQXVCLEtBQXZCLHVCQUF1QixRQW9HbEM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFxQyxhQUFhLENBQzFGLFFBQVEsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUVqRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0E4Q2xCLGFBQWEsQ0FDaEIsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDIn0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zX3NlcnZpY2VfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2VzL2luY28va21zL2xpdGUvdjEva21zX3NlcnZpY2VfcGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUVBQWlFO0FBQ2pFLG9HQUFvRztBQUNwRyxvQkFBb0I7QUFHcEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd6RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFZLGFBQWEsQ0FDckUsUUFBUSxDQUFDLHkrRUFBeStFLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7QUFVcmhGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUEyQixhQUFhLENBQ25FLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXlCcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQTRCLGFBQWEsQ0FDckUsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBeUVwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBdUMsYUFBYSxDQUMzRixXQUFXLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFpQnBEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFzQyxhQUFhLENBQ3pGLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXNGcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQXVDLGFBQWEsQ0FDM0YsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBd0MsYUFBYSxDQUM3RixXQUFXLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFpQnBEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUF1QyxhQUFhLENBQzNGLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWdCcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQXdDLGFBQWEsQ0FDN0YsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBZ0JwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQTBCLGFBQWEsQ0FDakUsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBd0JwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBNkIsYUFBYSxDQUN2RSxXQUFXLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUE2RXBEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFzQyxhQUFhLENBQ3pGLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVyRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLHVCQW9HWDtBQXBHRCxXQUFZLHVCQUF1QjtJQUNqQzs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILG1GQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILGlGQUFjLENBQUE7SUFFZDs7T0FFRztJQUNILG1GQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDhFQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDhFQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDRFQUFZLENBQUE7SUFFWjs7T0FFRztJQUNILDRFQUFZLENBQUE7QUFDZCxDQUFDLEVBcEdXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFvR2xDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBcUMsYUFBYSxDQUMxRixRQUFRLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFakQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBOENsQixhQUFhLENBQ2hCLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQyJ9
@@ -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";