@inco/js 0.6.8 → 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.
Files changed (140) hide show
  1. package/README.md +8 -8
  2. package/dist/cjs/advancedacl/session-key.d.ts +39 -19
  3. package/dist/cjs/advancedacl/session-key.js +59 -108
  4. package/dist/cjs/attestedcompute/attested-compute.d.ts +6 -6
  5. package/dist/cjs/attestedcompute/attested-compute.js +5 -28
  6. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +68 -16
  7. package/dist/cjs/attesteddecrypt/attested-decrypt.js +108 -66
  8. package/dist/cjs/attesteddecrypt/types.d.ts +8 -3
  9. package/dist/cjs/attesteddecrypt/types.js +1 -1
  10. package/dist/cjs/encryption/encryption.d.ts +8 -10
  11. package/dist/cjs/encryption/encryption.js +6 -6
  12. package/dist/cjs/generated/abis/add-two.d.ts +1 -1
  13. package/dist/cjs/generated/abis/add-two.js +1 -1
  14. package/dist/cjs/generated/abis/lightning-preview.d.ts +40 -0
  15. package/dist/cjs/generated/abis/lightning-preview.js +29 -1
  16. package/dist/cjs/generated/abis/lightning.d.ts +1 -1
  17. package/dist/cjs/generated/abis/lightning.js +1 -1
  18. package/dist/cjs/generated/abis/verifier.d.ts +126 -67
  19. package/dist/cjs/generated/abis/verifier.js +108 -54
  20. package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
  21. package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.js +1 -1
  22. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +87 -132
  23. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +21 -27
  24. package/dist/cjs/generated/lightning.d.ts +40 -32
  25. package/dist/cjs/generated/lightning.js +43 -33
  26. package/dist/cjs/generated/local-node.d.ts +11 -11
  27. package/dist/cjs/generated/local-node.js +28 -12
  28. package/dist/cjs/kms/client.d.ts +8 -4
  29. package/dist/cjs/kms/client.js +9 -4
  30. package/dist/cjs/kms/quorumClient.d.ts +58 -0
  31. package/dist/cjs/kms/quorumClient.js +378 -0
  32. package/dist/cjs/kms/thresholdPromises.d.ts +7 -0
  33. package/dist/cjs/kms/thresholdPromises.js +52 -0
  34. package/dist/cjs/lite/deployments.d.ts +20 -2
  35. package/dist/cjs/lite/deployments.js +1 -1
  36. package/dist/cjs/lite/index.d.ts +1 -2
  37. package/dist/cjs/lite/index.js +1 -2
  38. package/dist/cjs/lite/lightning.d.ts +109 -77
  39. package/dist/cjs/lite/lightning.js +279 -112
  40. package/dist/cjs/local/local-node.d.ts +1 -2
  41. package/dist/cjs/local/local-node.js +2 -3
  42. package/dist/cjs/test/mocks.d.ts +15 -0
  43. package/dist/cjs/test/mocks.js +45 -0
  44. package/dist/cjs/viem.d.ts +1 -1
  45. package/dist/esm/advancedacl/session-key.d.ts +39 -19
  46. package/dist/esm/advancedacl/session-key.js +52 -100
  47. package/dist/esm/attestedcompute/attested-compute.d.ts +6 -6
  48. package/dist/esm/attestedcompute/attested-compute.js +6 -29
  49. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +68 -16
  50. package/dist/esm/attesteddecrypt/attested-decrypt.js +109 -68
  51. package/dist/esm/attesteddecrypt/types.d.ts +8 -3
  52. package/dist/esm/attesteddecrypt/types.js +1 -1
  53. package/dist/esm/encryption/encryption.d.ts +8 -10
  54. package/dist/esm/encryption/encryption.js +6 -6
  55. package/dist/esm/generated/abis/add-two.d.ts +1 -1
  56. package/dist/esm/generated/abis/add-two.js +1 -1
  57. package/dist/esm/generated/abis/lightning-preview.d.ts +40 -0
  58. package/dist/esm/generated/abis/lightning-preview.js +29 -1
  59. package/dist/esm/generated/abis/lightning.d.ts +1 -1
  60. package/dist/esm/generated/abis/lightning.js +1 -1
  61. package/dist/esm/generated/abis/verifier.d.ts +126 -67
  62. package/dist/esm/generated/abis/verifier.js +108 -54
  63. package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
  64. package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js +1 -1
  65. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +87 -132
  66. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +19 -25
  67. package/dist/esm/generated/lightning.d.ts +40 -32
  68. package/dist/esm/generated/lightning.js +43 -33
  69. package/dist/esm/generated/local-node.d.ts +11 -11
  70. package/dist/esm/generated/local-node.js +28 -12
  71. package/dist/esm/kms/client.d.ts +8 -4
  72. package/dist/esm/kms/client.js +8 -4
  73. package/dist/esm/kms/quorumClient.d.ts +58 -0
  74. package/dist/esm/kms/quorumClient.js +374 -0
  75. package/dist/esm/kms/thresholdPromises.d.ts +7 -0
  76. package/dist/esm/kms/thresholdPromises.js +49 -0
  77. package/dist/esm/lite/deployments.d.ts +20 -2
  78. package/dist/esm/lite/deployments.js +1 -1
  79. package/dist/esm/lite/index.d.ts +1 -2
  80. package/dist/esm/lite/index.js +1 -2
  81. package/dist/esm/lite/lightning.d.ts +109 -77
  82. package/dist/esm/lite/lightning.js +278 -111
  83. package/dist/esm/local/local-node.d.ts +1 -2
  84. package/dist/esm/local/local-node.js +2 -3
  85. package/dist/esm/test/mocks.d.ts +15 -0
  86. package/dist/esm/test/mocks.js +39 -0
  87. package/dist/esm/viem.d.ts +1 -1
  88. package/dist/types/advancedacl/session-key.d.ts +39 -19
  89. package/dist/types/attestedcompute/attested-compute.d.ts +6 -6
  90. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +68 -16
  91. package/dist/types/attesteddecrypt/types.d.ts +8 -3
  92. package/dist/types/encryption/encryption.d.ts +8 -10
  93. package/dist/types/generated/abis/add-two.d.ts +1 -1
  94. package/dist/types/generated/abis/lightning-preview.d.ts +40 -0
  95. package/dist/types/generated/abis/lightning.d.ts +1 -1
  96. package/dist/types/generated/abis/verifier.d.ts +126 -67
  97. package/dist/types/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +15 -1
  98. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +87 -132
  99. package/dist/types/generated/lightning.d.ts +40 -32
  100. package/dist/types/generated/local-node.d.ts +11 -11
  101. package/dist/types/kms/client.d.ts +8 -4
  102. package/dist/types/kms/quorumClient.d.ts +58 -0
  103. package/dist/types/kms/thresholdPromises.d.ts +7 -0
  104. package/dist/types/lite/deployments.d.ts +20 -2
  105. package/dist/types/lite/index.d.ts +1 -2
  106. package/dist/types/lite/lightning.d.ts +109 -77
  107. package/dist/types/local/local-node.d.ts +1 -2
  108. package/dist/types/test/mocks.d.ts +15 -0
  109. package/dist/types/viem.d.ts +1 -1
  110. package/package.json +3 -3
  111. package/dist/cjs/attestedreveal/attested-reveal.d.ts +0 -21
  112. package/dist/cjs/attestedreveal/attested-reveal.js +0 -67
  113. package/dist/cjs/attestedreveal/index.d.ts +0 -1
  114. package/dist/cjs/attestedreveal/index.js +0 -18
  115. package/dist/cjs/attestedreveal/types.d.ts +0 -7
  116. package/dist/cjs/attestedreveal/types.js +0 -16
  117. package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
  118. package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.js +0 -118
  119. package/dist/cjs/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
  120. package/dist/cjs/generated/es/inco/fhe/v1/types_pb.js +0 -136
  121. package/dist/cjs/lite/reencrypt.d.ts +0 -23
  122. package/dist/cjs/lite/reencrypt.js +0 -131
  123. package/dist/esm/attestedreveal/attested-reveal.d.ts +0 -21
  124. package/dist/esm/attestedreveal/attested-reveal.js +0 -64
  125. package/dist/esm/attestedreveal/index.d.ts +0 -1
  126. package/dist/esm/attestedreveal/index.js +0 -2
  127. package/dist/esm/attestedreveal/types.d.ts +0 -7
  128. package/dist/esm/attestedreveal/types.js +0 -12
  129. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
  130. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +0 -115
  131. package/dist/esm/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
  132. package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +0 -133
  133. package/dist/esm/lite/reencrypt.d.ts +0 -23
  134. package/dist/esm/lite/reencrypt.js +0 -122
  135. package/dist/types/attestedreveal/attested-reveal.d.ts +0 -21
  136. package/dist/types/attestedreveal/index.d.ts +0 -1
  137. package/dist/types/attestedreveal/types.d.ts +0 -7
  138. package/dist/types/generated/es/cosmos_proto/cosmos_pb.d.ts +0 -174
  139. package/dist/types/generated/es/inco/fhe/v1/types_pb.d.ts +0 -419
  140. package/dist/types/lite/reencrypt.d.ts +0 -23
@@ -1,29 +1,72 @@
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';
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';
6
7
  import type { BackoffConfig } from '../retry.js';
7
- import { DecryptionAttestation } from './types.js';
8
+ import { type DecryptionAttestation, type EncryptedDecryptionAttestation } from './types.js';
8
9
  export declare const ATTESTED_DECRYPT_DOMAIN_NAME = "IncoAttestedDecrypt";
9
- export declare const ATTESTED_DECRYPT_DOMAIN_VERSION = "0.1.0";
10
- /**
11
- * Validates a handle format.
12
- * @param handle - The handle to validate
13
- * @throws {AttestedDecryptError} If the handle format is invalid
14
- */
15
- export declare function validateHandle(handle: HexString): void;
10
+ export declare const ATTESTED_DECRYPT_DOMAIN_VERSION = "1";
16
11
  /**
17
12
  * Arguments for creating an attested decrypt request.
18
13
  */
19
14
  export interface IncoLiteAttestedDecryptorArgs {
20
15
  /** The wallet used to interact with the blockchain and sign the decrypt request */
21
16
  walletClient: WalletClient<Transport, Chain, Account>;
22
- /** The KMS connect RPC endpoint or client instance */
23
- kmsConnectRpcEndpointOrClient?: string | KmsClient;
17
+ /** The KMS quorum client instance */
18
+ kmsQuorumClient: KmsQuorumClient;
24
19
  /** The chain ID to use */
25
20
  chainId: SupportedChainId;
26
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>>>;
36
+ /**
37
+ * Decrypt multiple handles in a single attested request.
38
+ * Returns an array of attestations aligned with the response ordering.
39
+ *
40
+ * @param args - The arguments for creating the attested decrypt function
41
+ * @returns A function that can decrypt handles and return an attestation
42
+ * @throws {AttestedDecryptError} If the creation fails
43
+ */
44
+ export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, }: {
45
+ handles: HexString[];
46
+ backoffConfig?: Partial<BackoffConfig> | undefined;
47
+ walletClient: WalletClient<Transport, Chain, Account>;
48
+ chainId: SupportedChainId;
49
+ reencryptPubKey: Uint8Array;
50
+ reencryptKeypair: Secp256k1Keypair;
51
+ kmsQuorumClient: KmsQuorumClient;
52
+ }): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
53
+ /**
54
+ * Decrypt multiple handles in a single attested request.
55
+ * Returns an array of attestations aligned with the response ordering.
56
+ *
57
+ * @param args - The arguments for creating the attested decrypt function
58
+ * @returns A function that can decrypt handles and return an attestation
59
+ * @throws {AttestedDecryptError} If the creation fails
60
+ */
61
+ export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, kmsQuorumClient, }: {
62
+ handles: HexString[];
63
+ backoffConfig?: Partial<BackoffConfig> | undefined;
64
+ walletClient: WalletClient<Transport, Chain, Account>;
65
+ chainId: SupportedChainId;
66
+ reencryptPubKey: Uint8Array;
67
+ reencryptKeypair?: never;
68
+ kmsQuorumClient: KmsQuorumClient;
69
+ }): Promise<Array<EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>>>;
27
70
  /**
28
71
  * Decrypt multiple handles in a single attested request.
29
72
  * Returns an array of attestations aligned with the response ordering.
@@ -32,10 +75,19 @@ export interface IncoLiteAttestedDecryptorArgs {
32
75
  * @returns A function that can decrypt handles and return an attestation
33
76
  * @throws {AttestedDecryptError} If the creation fails
34
77
  */
35
- export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, kmsConnectRpcEndpointOrClient, }: {
78
+ export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, kmsQuorumClient, }: {
36
79
  handles: HexString[];
37
80
  backoffConfig?: Partial<BackoffConfig> | undefined;
38
81
  walletClient: WalletClient<Transport, Chain, Account>;
39
82
  chainId: SupportedChainId;
40
- kmsConnectRpcEndpointOrClient?: string | KmsClient;
83
+ reencryptPubKey?: never;
84
+ reencryptKeypair?: never;
85
+ kmsQuorumClient: KmsQuorumClient;
41
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,27 +1,15 @@
1
1
  import { create } from '@bufbuild/protobuf';
2
- import { hexToBytes } from 'viem';
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';
8
+ import { decrypt } from '../lite/ecies.js';
10
9
  import { createEIP712Payload } from '../reencryption/eip712.js';
11
- import { retryWithBackoff } from '../retry.js';
12
- import { AttestedDecryptError } from './types.js';
10
+ import { AttestedDecryptError, } from './types.js';
13
11
  export const ATTESTED_DECRYPT_DOMAIN_NAME = 'IncoAttestedDecrypt';
14
- export const ATTESTED_DECRYPT_DOMAIN_VERSION = '0.1.0';
15
- /**
16
- * Validates a handle format.
17
- * @param handle - The handle to validate
18
- * @throws {AttestedDecryptError} If the handle format is invalid
19
- */
20
- export function validateHandle(handle) {
21
- if (!handle.startsWith('0x') || handle.length !== 2 + 2 * 32) {
22
- throw new AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
23
- }
24
- }
12
+ export const ATTESTED_DECRYPT_DOMAIN_VERSION = '1';
25
13
  /**
26
14
  * Decrypt multiple handles in a single attested request.
27
15
  * Returns an array of attestations aligned with the response ordering.
@@ -30,61 +18,39 @@ export function validateHandle(handle) {
30
18
  * @returns A function that can decrypt handles and return an attestation
31
19
  * @throws {AttestedDecryptError} If the creation fails
32
20
  */
33
- export async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, kmsConnectRpcEndpointOrClient, }) {
21
+ export async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, }) {
34
22
  try {
35
23
  handles.forEach(validateHandle);
36
- const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient ||
37
- defaultCovalidatorGrpc(getSupportedChain(chainId)));
38
- // Create the EIP712 payload for the handles to decrypt
39
- const eip712Payload = createEIP712Payload({
40
- chainId: BigInt(chainId),
41
- primaryType: 'AttestedDecryptRequest',
42
- primaryTypeFields: [{ name: 'handles', type: 'bytes32[]' }],
43
- message: {
44
- handles: handles,
45
- },
46
- domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
47
- domainVersion: ATTESTED_DECRYPT_DOMAIN_VERSION,
24
+ const eip712Payload = buildEip712Payload({
25
+ chainId,
26
+ handles,
27
+ ...(reencryptPubKey !== undefined ? { reencryptPubKey } : {}),
48
28
  });
49
- // Sign the EIP712 message
50
- const eip712Signature = await walletClient.signTypedData(eip712Payload);
51
- const handlesWithProofs = handles.map((handle) => {
52
- return create(HandleWithProofSchema, {
53
- handle: handle,
54
- aclProof: {
55
- proof: {
56
- case: 'incoLiteBasicAclProof',
57
- value: {},
58
- },
59
- },
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 } : {}),
60
38
  });
61
- });
62
- const attestedDecryptRequest = create(AttestedDecryptRequestSchema, {
63
- userAddress: walletClient.account.address,
64
- handlesWithProofs: handlesWithProofs,
65
- eip712Signature: hexToBytes(eip712Signature),
66
- });
67
- const response = await retryWithBackoff(async () => {
68
- return await kmsClient.attestedDecrypt(attestedDecryptRequest);
69
- }, backoffConfig);
70
- if (!response.decryptionAttestations ||
71
- response.decryptionAttestations.length === 0) {
72
- throw new AttestedDecryptError('No decryption attestations in response');
73
- }
74
- const results = response.decryptionAttestations.map((att) => {
75
- if (att.plaintext === undefined) {
76
- throw new AttestedDecryptError('No plaintext in attestation');
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);
77
45
  }
78
- const h = att.handle;
79
- const handleType = getHandleType(h);
80
- const bigIntValue = bytesToBigInt(att.plaintext);
81
- return {
82
- handle: h,
83
- plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
84
- covalidatorSignature: att.signature,
85
- };
86
- });
87
- return results;
46
+ }
47
+ else {
48
+ const attestedRevealRequest = create(AttestedRevealRequestSchema, {
49
+ handles: handles,
50
+ });
51
+ response = await kmsQuorumClient.attestedReveal(attestedRevealRequest, backoffConfig);
52
+ }
53
+ return response;
88
54
  }
89
55
  catch (error) {
90
56
  if (error instanceof AttestedDecryptError) {
@@ -93,4 +59,79 @@ export async function attestedDecrypt({ handles, backoffConfig, walletClient, ch
93
59
  throw new AttestedDecryptError('Failed to decrypt handles', error);
94
60
  }
95
61
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDbEUsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixpQkFBaUIsR0FFbEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBRUwsNEJBQTRCLEdBQzdCLE1BQU0sb0RBQW9ELENBQUM7QUFDNUQsT0FBTyxFQUNMLHFCQUFxQixHQUV0QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQXlCLE1BQU0sWUFBWSxDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLHFCQUFxQixDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLE9BQU8sQ0FBQztBQUV2RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFpQjtJQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMs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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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFFN0QsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixpQkFBaUIsR0FFbEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBRUwsNEJBQTRCLEVBRTVCLDJCQUEyQixHQUM1QixNQUFNLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sRUFFTCxxQkFBcUIsR0FDdEIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQ0wsb0JBQW9CLEdBR3JCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLHFCQUFxQixDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQztBQW1IbkQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLEVBQ3BDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FTaEI7SUFNQyxJQUFJLENBQUM7UUFDSCxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhDLE1B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
@@ -1,5 +1,5 @@
1
- import { HexString } from '../binary.js';
2
- import { EncryptionScheme, 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,7 +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
+ };
16
+ export type EncryptedDecryptionAttestation<S extends EncryptionScheme, T extends SupportedFheType> = {
17
+ handle: HexString;
18
+ encryptedPlaintext: EncryptResultOf<S, T>;
19
+ covalidatorSignatures: Uint8Array[];
15
20
  };
16
21
  export type AttestedDecryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: AttestedDecryptFnArgs<S, T>) => Promise<DecryptionAttestation<S, T>>;
17
22
  export type AttestedDecryptFnArgs<S extends EncryptionScheme, T extends SupportedFheType> = {
@@ -9,4 +9,4 @@ export class AttestedDecryptError extends Error {
9
9
  this.name = 'AttestedDecryptError';
10
10
  }
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLEtBQUs7SUFHM0I7SUFGbEIsWUFDRSxPQUFlLEVBQ0MsS0FBZTtRQUUvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGQyxVQUFLLEdBQUwsS0FBSyxDQUFVO1FBRy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLEtBQUs7SUFHM0I7SUFGbEIsWUFDRSxPQUFlLEVBQ0MsS0FBZTtRQUUvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGQyxVQUFLLEdBQUwsS0FBSyxDQUFVO1FBRy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
@@ -14,21 +14,19 @@ export type SupportedFheTypeName = typeof SupportedFheTypeName.Type;
14
14
  export declare const SupportedFheType: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
15
15
  export type SupportedFheType = typeof SupportedFheType.Type;
16
16
  export declare const encryptionSchemes: {
17
- readonly tfhe: 0;
18
17
  readonly ecies: 1;
19
18
  };
20
19
  export declare function getEncryptionSchemeName(scheme: number): string;
21
20
  export type EncryptionSchemes = typeof encryptionSchemes;
22
21
  export type EciesScheme = EncryptionSchemes['ecies'];
23
- export type TfheScheme = EncryptionSchemes['tfhe'];
24
- export declare const EncryptionScheme: Schema.Literal<[0, 1]>;
22
+ export declare const EncryptionScheme: Schema.Literal<[1]>;
25
23
  export type EncryptionScheme = typeof EncryptionScheme.Type;
26
24
  type DistType<P, S extends EncryptionScheme, T extends SupportedFheType> = P extends any ? P & {
27
25
  scheme: S;
28
26
  type: T;
29
27
  } : never;
30
28
  export declare const Ciphertext: Schema.Struct<{
31
- scheme: Schema.Literal<[0, 1]>;
29
+ scheme: Schema.Literal<[1]>;
32
30
  type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
33
31
  value: Schema.TemplateLiteral<`0x${string}`>;
34
32
  }>;
@@ -36,7 +34,7 @@ export type Ciphertext = typeof Ciphertext.Type;
36
34
  export type CiphertextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Ciphertext, S, T>;
37
35
  export declare const CiphertextWithContext: Schema.Struct<{
38
36
  ciphertext: Schema.Struct<{
39
- scheme: Schema.Literal<[0, 1]>;
37
+ scheme: Schema.Literal<[1]>;
40
38
  type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
41
39
  value: Schema.TemplateLiteral<`0x${string}`>;
42
40
  }>;
@@ -53,7 +51,7 @@ export type CiphertextWithContextOf<S extends EncryptionScheme, T extends Suppor
53
51
  };
54
52
  export declare const EncryptResult: Schema.Struct<{
55
53
  ciphertext: Schema.Struct<{
56
- scheme: Schema.Literal<[0, 1]>;
54
+ scheme: Schema.Literal<[1]>;
57
55
  type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
58
56
  value: Schema.TemplateLiteral<`0x${string}`>;
59
57
  }>;
@@ -71,11 +69,11 @@ export type EncryptResultOf<S extends EncryptionScheme, T extends SupportedFheTy
71
69
  ciphertext: CiphertextOf<S, T>;
72
70
  };
73
71
  export declare const Plaintext: Schema.Union<[Schema.Struct<{
74
- scheme: Schema.Literal<[0, 1]>;
72
+ scheme: Schema.Literal<[1]>;
75
73
  type: Schema.Literal<[5, 7, 8]>;
76
74
  value: typeof Schema.BigInt;
77
75
  }>, Schema.Struct<{
78
- scheme: Schema.Literal<[0, 1]>;
76
+ scheme: Schema.Literal<[1]>;
79
77
  type: Schema.Literal<[0]>;
80
78
  value: typeof Schema.Boolean;
81
79
  }>]>;
@@ -83,11 +81,11 @@ export type Plaintext = typeof Plaintext.Type;
83
81
  export type PlaintextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Plaintext, S, T>;
84
82
  export declare const PlaintextWithContext: Schema.Struct<{
85
83
  plaintext: Schema.Union<[Schema.Struct<{
86
- scheme: Schema.Literal<[0, 1]>;
84
+ scheme: Schema.Literal<[1]>;
87
85
  type: Schema.Literal<[5, 7, 8]>;
88
86
  value: typeof Schema.BigInt;
89
87
  }>, Schema.Struct<{
90
- scheme: Schema.Literal<[0, 1]>;
88
+ scheme: Schema.Literal<[1]>;
91
89
  type: Schema.Literal<[0]>;
92
90
  value: typeof Schema.Boolean;
93
91
  }>]>;
@@ -2,6 +2,7 @@ import { Schema } from 'effect';
2
2
  import { decodeAbiParameters, encodeAbiParameters, } from 'viem';
3
3
  import { bigintToBytes, bigintToBytes32, Bytes32, bytesToBigInt, HexString, } from '../binary.js';
4
4
  import { handleTypes, InputContext } from '../handle.js';
5
+ // TODO: review need of euint64 and euint160 as supported encrypted data type cause Lib.sol only supports euint256 and ebool
5
6
  export const supportedFheTypes = {
6
7
  euint64: handleTypes.euint64,
7
8
  euint160: handleTypes.euint160,
@@ -13,20 +14,17 @@ export const SupportedFheTypeName = Schema.Literal(...supportedFheTypeNames);
13
14
  // TODO: extend to all types
14
15
  export const SupportedFheType = Schema.Literal(...Object.values(supportedFheTypes));
15
16
  export const encryptionSchemes = {
16
- tfhe: 0,
17
17
  ecies: 1,
18
18
  };
19
19
  export function getEncryptionSchemeName(scheme) {
20
20
  switch (scheme) {
21
- case encryptionSchemes.tfhe:
22
- return 'TFHE';
23
21
  case encryptionSchemes.ecies:
24
22
  return 'ECIES';
25
23
  default:
26
24
  throw new Error(`Unknown encryption scheme: ${scheme}`);
27
25
  }
28
26
  }
29
- export const EncryptionScheme = Schema.Literal(encryptionSchemes.tfhe, encryptionSchemes.ecies);
27
+ export const EncryptionScheme = Schema.Literal(encryptionSchemes.ecies);
30
28
  export const Ciphertext = Schema.Struct({
31
29
  scheme: EncryptionScheme,
32
30
  type: SupportedFheType,
@@ -71,8 +69,10 @@ export function bigintToPlaintext(scheme, type, bigPt) {
71
69
  type,
72
70
  value: bigPt !== 0n,
73
71
  };
72
+ default:
73
+ console.warn(`bigintToPlaintext: Unsupported Encryption Scheme type ${type}`);
74
74
  }
75
- throw new Error(`Unsupported FHE type: ${type}`);
75
+ throw new Error(`Unsupported Encryption Scheme type: ${type}`);
76
76
  }
77
77
  // This defines the schema we use for input encoding compatible with abi.decode
78
78
  // on chain:
@@ -112,4 +112,4 @@ export function bytes32ToPlaintext(plaintext, scheme, type) {
112
112
  export function bytesToPlaintext(plaintext, scheme, type) {
113
113
  return bigintToPlaintext(scheme, type, BigInt(bytesToBigInt(plaintext)));
114
114
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmNyeXB0aW9uL2VuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUVwQixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxHQUNWLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBZ0J6RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87SUFDNUIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO0lBQzlCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7Q0FDaEIsQ0FBQztBQUVYLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDdkMsaUJBQWlCLENBQ29CLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUM7QUFJN0UsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQzVDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUNwQyxDQUFDO0FBSUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsSUFBSSxFQUFFLENBQUM7SUFDUCxLQUFLLEVBQUUsQ0FBQztDQUNBLENBQUM7QUFFWCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBYztJQUNwRCxRQUFR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
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmNyeXB0aW9uL2VuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUVwQixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxHQUNWLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBZ0J6RCw0SEFBNEg7QUFDNUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO0lBQzVCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7SUFDOUIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0NBQ2hCLENBQUM7QUFFWCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3ZDLGlCQUFpQixDQUNvQixDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO0FBSTdFLDRCQUE0QjtBQUM1QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUM1QyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FDcEMsQ0FBQztBQUlGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLEtBQUssRUFBRSxDQUFDO0NBQ0EsQ0FBQztBQUVYLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxNQUFjO0lBQ3BELFFBQVEsTUFBTSxF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
@@ -44,7 +44,7 @@ export declare const addTwoAbi: readonly [{
44
44
  readonly internalType: "bytes";
45
45
  readonly type: "bytes";
46
46
  }];
47
- readonly name: "addTwoEOA";
47
+ readonly name: "addTwoEoa";
48
48
  readonly outputs: readonly [{
49
49
  readonly name: "result";
50
50
  readonly internalType: "euint256";
@@ -31,7 +31,7 @@ export const addTwoAbi = [
31
31
  {
32
32
  type: 'function',
33
33
  inputs: [{ name: 'uint256EInput', internalType: 'bytes', type: 'bytes' }],
34
- name: 'addTwoEOA',
34
+ name: 'addTwoEoa',
35
35
  outputs: [
36
36
  { name: 'result', internalType: 'euint256', type: 'bytes32' },
37
37
  { name: 'resultRevealed', internalType: 'euint256', type: 'bytes32' },
@@ -1135,6 +1135,26 @@ export declare const iIncoLightningPreviewAbi: readonly [{
1135
1135
  readonly type: "bytes32";
1136
1136
  }];
1137
1137
  readonly stateMutability: "nonpayable";
1138
+ }, {
1139
+ readonly type: "function";
1140
+ readonly inputs: readonly [];
1141
+ readonly name: "majorVersion";
1142
+ readonly outputs: readonly [{
1143
+ readonly name: "";
1144
+ readonly internalType: "uint8";
1145
+ readonly type: "uint8";
1146
+ }];
1147
+ readonly stateMutability: "view";
1148
+ }, {
1149
+ readonly type: "function";
1150
+ readonly inputs: readonly [];
1151
+ readonly name: "minorVersion";
1152
+ readonly outputs: readonly [{
1153
+ readonly name: "";
1154
+ readonly internalType: "uint8";
1155
+ readonly type: "uint8";
1156
+ }];
1157
+ readonly stateMutability: "view";
1138
1158
  }, {
1139
1159
  readonly type: "function";
1140
1160
  readonly inputs: readonly [{
@@ -1229,6 +1249,16 @@ export declare const iIncoLightningPreviewAbi: readonly [{
1229
1249
  readonly type: "bytes32";
1230
1250
  }];
1231
1251
  readonly stateMutability: "payable";
1252
+ }, {
1253
+ readonly type: "function";
1254
+ readonly inputs: readonly [];
1255
+ readonly name: "patchVersion";
1256
+ readonly outputs: readonly [{
1257
+ readonly name: "";
1258
+ readonly internalType: "uint8";
1259
+ readonly type: "uint8";
1260
+ }];
1261
+ readonly stateMutability: "view";
1232
1262
  }, {
1233
1263
  readonly type: "function";
1234
1264
  readonly inputs: readonly [{
@@ -1247,6 +1277,16 @@ export declare const iIncoLightningPreviewAbi: readonly [{
1247
1277
  readonly type: "bool";
1248
1278
  }];
1249
1279
  readonly stateMutability: "view";
1280
+ }, {
1281
+ readonly type: "function";
1282
+ readonly inputs: readonly [];
1283
+ readonly name: "salt";
1284
+ readonly outputs: readonly [{
1285
+ readonly name: "";
1286
+ readonly internalType: "bytes32";
1287
+ readonly type: "bytes32";
1288
+ }];
1289
+ readonly stateMutability: "view";
1250
1290
  }];
1251
1291
  export declare const voucherEip712CheckerAbi: readonly [{
1252
1292
  readonly type: "function";