@inco/js 0.8.0-devnet-29 → 0.8.0-devnet-31

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 (116) hide show
  1. package/dist/cjs/advancedacl/session-key.d.ts +4 -4
  2. package/dist/cjs/advancedacl/session-key.js +4 -3
  3. package/dist/cjs/attestedcompute/attested-compute.d.ts +0 -1
  4. package/dist/cjs/attestedcompute/attested-compute.js +7 -8
  5. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +3 -4
  6. package/dist/cjs/attesteddecrypt/attested-decrypt.js +8 -60
  7. package/dist/cjs/chain.d.ts +8 -0
  8. package/dist/cjs/chain.js +19 -2
  9. package/dist/cjs/eip712/eip712.d.ts +18 -0
  10. package/dist/cjs/eip712/eip712.js +51 -0
  11. package/dist/cjs/eip712/index.d.ts +1 -0
  12. package/dist/cjs/eip712/index.js +8 -0
  13. package/dist/cjs/elistattesteddecrypt/elist-attested-decrypt.d.ts +49 -0
  14. package/dist/cjs/elistattesteddecrypt/elist-attested-decrypt.js +94 -0
  15. package/dist/cjs/elistattesteddecrypt/index.d.ts +2 -0
  16. package/dist/cjs/elistattesteddecrypt/index.js +22 -0
  17. package/dist/cjs/elistattesteddecrypt/types.d.ts +31 -0
  18. package/dist/cjs/elistattesteddecrypt/types.js +16 -0
  19. package/dist/cjs/generated/abis/lightning.d.ts +0 -39
  20. package/dist/cjs/generated/abis/lightning.js +1 -39
  21. package/dist/cjs/generated/abis/test-elist.d.ts +6 -0
  22. package/dist/cjs/generated/abis/test-elist.js +8 -1
  23. package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +0 -34
  24. package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.js +35 -40
  25. package/dist/cjs/generated/lightning.d.ts +29 -0
  26. package/dist/cjs/generated/lightning.js +30 -1
  27. package/dist/cjs/generated/local-node.d.ts +2 -2
  28. package/dist/cjs/generated/local-node.js +2 -2
  29. package/dist/cjs/handle.d.ts +8 -0
  30. package/dist/cjs/handle.js +20 -2
  31. package/dist/cjs/kms/quorumClient.d.ts +17 -4
  32. package/dist/cjs/kms/quorumClient.js +150 -1
  33. package/dist/cjs/kms/quorumConsistency.d.ts +25 -1
  34. package/dist/cjs/kms/quorumConsistency.js +70 -1
  35. package/dist/cjs/kms/signatureVerification.d.ts +2 -2
  36. package/dist/cjs/kms/signatureVerification.js +1 -1
  37. package/dist/cjs/lite/attested-compute.d.ts +2 -2
  38. package/dist/cjs/lite/attested-compute.js +2 -3
  39. package/dist/cjs/lite/attested-decrypt.d.ts +2 -2
  40. package/dist/cjs/lite/attested-decrypt.js +2 -3
  41. package/dist/cjs/lite/lightning.d.ts +21 -14
  42. package/dist/cjs/lite/lightning.js +64 -11
  43. package/dist/cjs/test/mocks.d.ts +5 -1
  44. package/dist/cjs/test/mocks.js +29 -5
  45. package/dist/cjs/viem.d.ts +350 -1
  46. package/dist/cjs/viem.js +3 -1
  47. package/dist/esm/advancedacl/session-key.d.ts +4 -4
  48. package/dist/esm/advancedacl/session-key.js +6 -5
  49. package/dist/esm/attestedcompute/attested-compute.d.ts +0 -1
  50. package/dist/esm/attestedcompute/attested-compute.js +5 -6
  51. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +3 -4
  52. package/dist/esm/attesteddecrypt/attested-decrypt.js +6 -58
  53. package/dist/esm/chain.d.ts +8 -0
  54. package/dist/esm/chain.js +18 -1
  55. package/dist/esm/eip712/eip712.d.ts +18 -0
  56. package/dist/esm/eip712/eip712.js +46 -0
  57. package/dist/esm/eip712/index.d.ts +1 -0
  58. package/dist/esm/eip712/index.js +2 -0
  59. package/dist/esm/elistattesteddecrypt/elist-attested-decrypt.d.ts +49 -0
  60. package/dist/esm/elistattesteddecrypt/elist-attested-decrypt.js +89 -0
  61. package/dist/esm/elistattesteddecrypt/index.d.ts +2 -0
  62. package/dist/esm/elistattesteddecrypt/index.js +3 -0
  63. package/dist/esm/elistattesteddecrypt/types.d.ts +31 -0
  64. package/dist/esm/elistattesteddecrypt/types.js +12 -0
  65. package/dist/esm/generated/abis/lightning.d.ts +0 -39
  66. package/dist/esm/generated/abis/lightning.js +1 -39
  67. package/dist/esm/generated/abis/test-elist.d.ts +6 -0
  68. package/dist/esm/generated/abis/test-elist.js +8 -1
  69. package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +0 -34
  70. package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.js +34 -39
  71. package/dist/esm/generated/lightning.d.ts +29 -0
  72. package/dist/esm/generated/lightning.js +30 -1
  73. package/dist/esm/generated/local-node.d.ts +2 -2
  74. package/dist/esm/generated/local-node.js +2 -2
  75. package/dist/esm/handle.d.ts +8 -0
  76. package/dist/esm/handle.js +18 -1
  77. package/dist/esm/kms/quorumClient.d.ts +17 -4
  78. package/dist/esm/kms/quorumClient.js +152 -3
  79. package/dist/esm/kms/quorumConsistency.d.ts +25 -1
  80. package/dist/esm/kms/quorumConsistency.js +68 -1
  81. package/dist/esm/kms/signatureVerification.d.ts +2 -2
  82. package/dist/esm/kms/signatureVerification.js +1 -1
  83. package/dist/esm/lite/attested-compute.d.ts +2 -2
  84. package/dist/esm/lite/attested-compute.js +3 -3
  85. package/dist/esm/lite/attested-decrypt.d.ts +2 -2
  86. package/dist/esm/lite/attested-decrypt.js +3 -3
  87. package/dist/esm/lite/lightning.d.ts +21 -14
  88. package/dist/esm/lite/lightning.js +64 -11
  89. package/dist/esm/test/mocks.d.ts +5 -1
  90. package/dist/esm/test/mocks.js +28 -6
  91. package/dist/esm/viem.d.ts +350 -1
  92. package/dist/esm/viem.js +4 -2
  93. package/dist/types/advancedacl/session-key.d.ts +4 -4
  94. package/dist/types/attestedcompute/attested-compute.d.ts +0 -1
  95. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +3 -4
  96. package/dist/types/chain.d.ts +8 -0
  97. package/dist/types/eip712/eip712.d.ts +18 -0
  98. package/dist/types/eip712/index.d.ts +1 -0
  99. package/dist/types/elistattesteddecrypt/elist-attested-decrypt.d.ts +49 -0
  100. package/dist/types/elistattesteddecrypt/index.d.ts +2 -0
  101. package/dist/types/elistattesteddecrypt/types.d.ts +31 -0
  102. package/dist/types/generated/abis/lightning.d.ts +0 -39
  103. package/dist/types/generated/abis/test-elist.d.ts +6 -0
  104. package/dist/types/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +0 -34
  105. package/dist/types/generated/lightning.d.ts +29 -0
  106. package/dist/types/generated/local-node.d.ts +2 -2
  107. package/dist/types/handle.d.ts +8 -0
  108. package/dist/types/kms/quorumClient.d.ts +17 -4
  109. package/dist/types/kms/quorumConsistency.d.ts +25 -1
  110. package/dist/types/kms/signatureVerification.d.ts +2 -2
  111. package/dist/types/lite/attested-compute.d.ts +2 -2
  112. package/dist/types/lite/attested-decrypt.d.ts +2 -2
  113. package/dist/types/lite/lightning.d.ts +21 -14
  114. package/dist/types/test/mocks.d.ts +5 -1
  115. package/dist/types/viem.d.ts +350 -1
  116. package/package.json +1 -1
@@ -1,21 +1,15 @@
1
1
  import { create } from '@bufbuild/protobuf';
2
- import { bytesToHex, getContract, hexToBytes } from 'viem';
2
+ import { hexToBytes } from 'viem';
3
3
  import { bytesToBigInt } from '../binary.js';
4
+ import { buildEip712Payload, signEip712 } from '../eip712/eip712.js';
4
5
  import { bigintToPlaintext, encryptionSchemes, } from '../encryption/encryption.js';
5
- import { incoLightningAbi } from '../generated/abis/lightning.js';
6
- import { incoVerifierAbi } from '../generated/abis/verifier.js';
7
6
  import { AttestedDecryptRequestSchema, } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
8
7
  import { HandleWithProofSchema, } from '../generated/es/inco/kms/lite/v1/types_pb.js';
9
8
  import { getHandleType, validateHandle } from '../handle.js';
10
9
  import { decrypt, reencryptPublicKeysMatch } from '../lite/xwing.js';
11
- import { createEIP712Payload } from '../reencryption/eip712.js';
12
10
  import { AttestedDecryptError, } from './types.js';
13
11
  export { validateHandle };
14
12
  export const ATTESTED_DECRYPT_DOMAIN_NAME = 'IncoAttestedDecrypt';
15
- // This version should match the return value of GetEIP712Version() in IncoVerifier and is used as fallback value in case run in tests (where walletClient is mocked)
16
- export const DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION = '2';
17
- // This magic RPC url is used in tests to detect a mock client (which cannot make real on-chain calls)
18
- export const TEST_RPC_URL = 'UNUSED IN TEST';
19
13
  /**
20
14
  * Decrypt multiple handles in a single attested request.
21
15
  * Returns an array of attestations aligned with the response ordering.
@@ -36,7 +30,7 @@ export async function attestedDecrypt({ handles, backoffConfig, walletClient, ch
36
30
  }
37
31
  const eip712Payload = await buildEip712Payload({
38
32
  executorAddress,
39
- walletClient,
33
+ ethClient: walletClient,
40
34
  chainId,
41
35
  handles,
42
36
  reencryptPubKey,
@@ -52,8 +46,7 @@ export async function attestedDecrypt({ handles, backoffConfig, walletClient, ch
52
46
  // Call quorum client which returns aggregated attestations directly
53
47
  // The quorum client handles retry logic internally for each KMS client
54
48
  // Envelope signatures are verified against the on-chain authorized signer set
55
- const isRealClient = walletClient.transport.url !== TEST_RPC_URL;
56
- const response = await kmsQuorumClient.attestedDecrypt(attestedDecryptRequest, backoffConfig, reencryptKeypair, isRealClient ? executorAddress : undefined, isRealClient ? walletClient : undefined);
49
+ const response = await kmsQuorumClient.attestedDecrypt(attestedDecryptRequest, backoffConfig, reencryptKeypair, executorAddress, walletClient);
57
50
  // If reencryptPubKey is provided with a keypair, decrypt the encrypted attestations
58
51
  // and verify the inner DecryptionAttestation signatures
59
52
  if (reencryptPubKey !== undefined && reencryptKeypair) {
@@ -68,52 +61,7 @@ export async function attestedDecrypt({ handles, backoffConfig, walletClient, ch
68
61
  throw new AttestedDecryptError('Failed to decrypt handles', error);
69
62
  }
70
63
  }
71
- // Fetches EIP712 domain version from on-chain verifier if walletClient is provided
72
- export async function fetchEip712DomainVersion(executorAddress, defaultVersion, walletClient) {
73
- let eip712DomainVersion;
74
- if (walletClient &&
75
- executorAddress &&
76
- walletClient.transport.url !== TEST_RPC_URL) {
77
- const lightning = getContract({
78
- address: executorAddress,
79
- abi: incoLightningAbi,
80
- client: walletClient,
81
- });
82
- const incoVerifierAddress = await lightning.read.incoVerifier();
83
- const verifier = getContract({
84
- address: incoVerifierAddress,
85
- abi: incoVerifierAbi,
86
- client: walletClient,
87
- });
88
- eip712DomainVersion = await verifier.read.getEIP712Version();
89
- }
90
- else {
91
- eip712DomainVersion = defaultVersion;
92
- }
93
- return eip712DomainVersion;
94
- }
95
- // Small helpers to make the main flow readable
96
- async function buildEip712Payload(params) {
97
- const eip712DomainVersion = await fetchEip712DomainVersion(params.executorAddress, DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION, params.walletClient);
98
- return createEIP712Payload({
99
- chainId: BigInt(params.chainId),
100
- primaryType: 'AttestedDecryptRequest',
101
- primaryTypeFields: [
102
- { name: 'handles', type: 'bytes32[]' },
103
- { name: 'publicKey', type: 'bytes' },
104
- ],
105
- message: {
106
- handles: params.handles,
107
- publicKey: bytesToHex(params.reencryptPubKey),
108
- },
109
- domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
110
- domainVersion: eip712DomainVersion,
111
- });
112
- }
113
- function signEip712(walletClient, eip712Payload) {
114
- return walletClient.signTypedData(eip712Payload);
115
- }
116
- function buildHandlesWithProofs(handles) {
64
+ export function buildHandlesWithProofs(handles) {
117
65
  return handles.map((handle) => {
118
66
  return create(HandleWithProofSchema, {
119
67
  handle: handle,
@@ -161,4 +109,4 @@ export async function decryptEncryptedAttestations(attestations, reencryptKeypai
161
109
  throw new AttestedDecryptError('Attestation is neither plaintext nor encrypted');
162
110
  }));
163
111
  }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFTNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQWtCLE1BQU0sY0FBYyxDQUFDO0FBRTdELE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsaUJBQWlCLEdBRWxCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFFTCw0QkFBNEIsR0FDN0IsTUFBTSxvREFBb0QsQ0FBQztBQUM1RCxPQUFPLEVBRUwscUJBQXFCLEdBQ3RCLE1BQU0sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFDTCxvQkFBb0IsR0FHckIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO0FBRTFCLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLHFCQUFxQixDQUFDO0FBQ2xFLHFLQUFxSztBQUNySyxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxHQUFHLENBQUM7QUFFM0Qsc0dBQXNHO0FBQ3RHLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztBQXlFN0M7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLEVBQ3BDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixlQUFlLEdBVWhCO0lBTUMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELElBQ0UsZ0JBQWdCO1lBQ2hCLENBQUMsd0JBQXdCLENBQUMsZUFBZSxFQUFFLGdCQUFnQixDQUFDLEVBQzVELENBQUM7WUFDRCxNQUFNLElBQUksb0JBQW9CLENBQzVCLDREQUE0RCxDQUM3RCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sa0JBQWtCLENBQUM7WUFDN0MsZUFBZTtZQUNmLFlBQVk7WUFDWixPQUFPO1lBQ1AsT0FBTztZQUNQLGVBQWU7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLFVBQVUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFekUsTUFBTSxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxRCxNQUFNLHNCQUFzQixHQUFHLDJCQUEyQixDQUFDO1lBQ3pELFdBQVcsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU87WUFDekMsaUJBQWlCO1lBQ2pCLGVBQWUsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUM7WUFDL0MsZUFBZTtTQUNoQixDQUFDLENBQUM7UUFFSCxvRUFBb0U7UUFDcEUsdUVBQXVFO1FBQ3ZFLDhFQUE4RTtRQUM5RSxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUM7UUFDakUsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUNwRCxzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixZQUFZLENBQUMsQ0FBQyxDQUFFLGVBQTJCLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDdkQsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDeEMsQ0FBQztRQUVGLG9GQUFvRjtRQUNwRix3REFBd0Q7UUFDeEQsSUFBSSxlQUFlLEtBQUssU0FBUyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDdEQsT0FBTyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxvQkFBb0IsRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxvQkFBb0IsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0FBQ0gsQ0FBQztBQUVELG1GQUFtRjtBQUNuRixNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxlQUFzQyxFQUN0QyxjQUFzQixFQUN0QixZQUVrQztJQUVsQyxJQUFJLG1CQUEyQixDQUFDO0lBRWhDLElBQ0UsWUFBWTtRQUNaLGVBQWU7UUFDZixZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxZQUFZLEVBQzNDLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7WUFDNUIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsR0FBRyxFQUFFLGdCQUFnQjtZQUNyQixNQUFNLEVBQUUsWUFBWTtTQUNyQixDQUFDLENBQUM7UUFFSCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUM7WUFDM0IsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixHQUFHLEVBQUUsZUFBZTtZQUNwQixNQUFNLEVBQUUsWUFBWTtTQUNyQixDQUFDLENBQUM7UUFFSCxtQkFBbUIsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMvRCxDQUFDO1NBQU0sQ0FBQztRQUNOLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsK0NBQStDO0FBQy9DLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxNQU1qQztJQUNDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSx3QkFBd0IsQ0FDeEQsTUFBTSxDQUFDLGVBQWUsRUFDdEIsdUNBQXVDLEVBQ3ZDLE1BQU0sQ0FBQyxZQUFZLENBQ3BCLENBQUM7SUFFRixPQUFPLG1CQUFtQixDQUFDO1FBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQixXQUFXLEVBQUUsd0JBQXdCO1FBQ3JDLGlCQUFpQixFQUFFO1lBQ2pCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1NBQ3JDO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztTQUM5QztRQUNELFVBQVUsRUFBRSw0QkFBNEI7UUFDeEMsYUFBYSxFQUFFLG1CQUFtQjtLQUNuQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBTUQsU0FBUyxVQUFVLENBQ2pCLFlBQXFELEVBQ3JELGFBQXdDO0lBRXhDLE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxPQUFvQjtJQUNsRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRTtZQUNuQyxNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsS0FBSyxFQUFFLEVBQUU7aUJBQ1Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsTUFLcEM7SUFDQyxPQUFPLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRTtRQUMxQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQjtRQUMzQyxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7UUFDdkMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSSxVQUFVLEVBQUU7S0FDNUQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsNEJBQTRCLENBQ2hELFlBR0MsRUFDRCxnQkFBOEI7SUFFOUIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM3QixtREFBbUQ7UUFDbkQsSUFBSSxXQUFXLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEQsT0FBTyxHQUFnRSxDQUFDO1FBQzFFLENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsSUFBSSxvQkFBb0IsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hFLE1BQU0sWUFBWSxHQUFHLEdBR3BCLENBQUM7WUFDRixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4RSxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV0RCxxRkFBcUY7WUFDckYsK0VBQStFO1lBQy9FLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtnQkFDMUQsT0FBTyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBRUYsT0FBTztnQkFDTCxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07Z0JBQzNCLFNBQVMsRUFBRSxpQkFBaUIsQ0FDMUIsaUJBQWlCLENBQUMsS0FBSyxFQUN2QixVQUE4QixFQUM5QixXQUFXLENBQ1o7Z0JBQ0QscUJBQXFCLEVBQUUsbUJBQW1CO2FBQ2tCLENBQUM7UUFDakUsQ0FBQztRQUVELE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsZ0RBQWdELENBQ2pELENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyJ9
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFrQixNQUFNLGNBQWMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixpQkFBaUIsR0FFbEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBRUwsNEJBQTRCLEdBQzdCLE1BQU0sb0RBQW9ELENBQUM7QUFDNUQsT0FBTyxFQUVMLHFCQUFxQixHQUN0QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQ0wsb0JBQW9CLEdBR3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQztBQUUxQixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQztBQXlFbEU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLEVBQ3BDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixlQUFlLEdBVWhCO0lBTUMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELElBQ0UsZ0JBQWdCO1lBQ2hCLENBQUMsd0JBQXdCLENBQUMsZUFBZSxFQUFFLGdCQUFnQixDQUFDLEVBQzVELENBQUM7WUFDRCxNQUFNLElBQUksb0JBQW9CLENBQzVCLDREQUE0RCxDQUM3RCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sa0JBQWtCLENBQUM7WUFDN0MsZUFBZTtZQUNmLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLE9BQU87WUFDUCxPQUFPO1lBQ1AsZUFBZTtTQUNoQixDQUFDLENBQUM7UUFFSCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sVUFBVSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUV6RSxNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFELE1BQU0sc0JBQXNCLEdBQUcsMkJBQTJCLENBQUM7WUFDekQsV0FBVyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUN6QyxpQkFBaUI7WUFDakIsZUFBZSxFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztZQUMvQyxlQUFlO1NBQ2hCLENBQUMsQ0FBQztRQUVILG9FQUFvRTtRQUNwRSx1RUFBdUU7UUFDdkUsOEVBQThFO1FBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLGVBQWUsQ0FDcEQsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBMEIsRUFDMUIsWUFBWSxDQUNiLENBQUM7UUFFRixvRkFBb0Y7UUFDcEYsd0RBQXdEO1FBQ3hELElBQUksZUFBZSxLQUFLLFNBQVMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RELE9BQU8sNEJBQTRCLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksb0JBQW9CLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLElBQUksb0JBQW9CLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE9BQW9CO0lBRXBCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQzVCLE9BQU8sTUFBTSxDQUFDLHFCQUFxQixFQUFFO1lBQ25DLE1BQU0sRUFBRSxNQUFNO1lBQ2QsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsdUJBQXVCO29CQUM3QixLQUFLLEVBQUUsRUFBRTtpQkFDVjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUywyQkFBMkIsQ0FBQyxNQUtwQztJQUNDLE9BQU8sTUFBTSxDQUFDLDRCQUE0QixFQUFFO1FBQzFDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixpQkFBaUIsRUFBRSxNQUFNLENBQUMsaUJBQWlCO1FBQzNDLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtRQUN2QyxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLFVBQVUsRUFBRTtLQUM1RCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSw0QkFBNEIsQ0FDaEQsWUFHQyxFQUNELGdCQUE4QjtJQUU5QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzdCLG1EQUFtRDtRQUNuRCxJQUFJLFdBQVcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RCxPQUFPLEdBQWdFLENBQUM7UUFDMUUsQ0FBQztRQUVELCtDQUErQztRQUMvQyxJQUFJLG9CQUFvQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsa0JBQWtCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEUsTUFBTSxZQUFZLEdBQUcsR0FHcEIsQ0FBQztZQUNGLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhFLE1BQU0sY0FBYyxHQUFHLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNsRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXRELHFGQUFxRjtZQUNyRiwrRUFBK0U7WUFDL0UsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQzNDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO2dCQUMxRCxPQUFPLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUNILENBQUM7WUFFRixPQUFPO2dCQUNMLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtnQkFDM0IsU0FBUyxFQUFFLGlCQUFpQixDQUMxQixpQkFBaUIsQ0FBQyxLQUFLLEVBQ3ZCLFVBQThCLEVBQzlCLFdBQVcsQ0FDWjtnQkFDRCxxQkFBcUIsRUFBRSxtQkFBbUI7YUFDa0IsQ0FBQztRQUNqRSxDQUFDO1FBRUQsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixnREFBZ0QsQ0FDakQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIn0=
@@ -5,6 +5,8 @@
5
5
  * to work around Pulumi closure serialisation issues.
6
6
  */
7
7
  export declare const supportedChains: {
8
+ readonly mainnet: 1;
9
+ readonly base: 8453;
8
10
  readonly baseSepolia: 84532;
9
11
  readonly sepolia: 11155111;
10
12
  readonly monadTestnet: 10143;
@@ -28,6 +30,12 @@ export type Numberish = number | bigint;
28
30
  export type Chainish = {
29
31
  id: Numberish;
30
32
  } | Numberish | string;
33
+ /**
34
+ * Map of supported chain IDs to their short names.
35
+ * Public networks use the `shortName` from https://github.com/ethereum-lists/chains.
36
+ * Local Anvil uses `31337` (same ID as GoChain Testnet in the registry) but the SDK labels it `anvil`.
37
+ */
38
+ export declare const chainShortNames: Record<SupportedChainId, string>;
31
39
  /**
32
40
  * Resolves a {@link Chainish} value to a {@link SupportedChain}.
33
41
  *
package/dist/esm/chain.js CHANGED
@@ -9,6 +9,8 @@
9
9
  * to work around Pulumi closure serialisation issues.
10
10
  */
11
11
  export const supportedChains = {
12
+ mainnet: 1,
13
+ base: 8453,
12
14
  baseSepolia: 84532,
13
15
  sepolia: 11155111,
14
16
  monadTestnet: 10143,
@@ -16,6 +18,21 @@ export const supportedChains = {
16
18
  worldchainSepolia: 4801,
17
19
  anvil: 31337,
18
20
  };
21
+ /**
22
+ * Map of supported chain IDs to their short names.
23
+ * Public networks use the `shortName` from https://github.com/ethereum-lists/chains.
24
+ * Local Anvil uses `31337` (same ID as GoChain Testnet in the registry) but the SDK labels it `anvil`.
25
+ */
26
+ export const chainShortNames = {
27
+ [supportedChains.mainnet]: 'eth',
28
+ [supportedChains.base]: 'base',
29
+ [supportedChains.baseSepolia]: 'basesep',
30
+ [supportedChains.sepolia]: 'sep',
31
+ [supportedChains.monadTestnet]: 'mon-testnet',
32
+ [supportedChains.plasmaTestnet]: 'plasma-testnet',
33
+ [supportedChains.worldchainSepolia]: 'wcsep',
34
+ [supportedChains.anvil]: 'anvil',
35
+ };
19
36
  /**
20
37
  * Resolves a {@link Chainish} value to a {@link SupportedChain}.
21
38
  *
@@ -38,4 +55,4 @@ export function getSupportedChain(chainish) {
38
55
  const [name, id] = found;
39
56
  return { name: name, id };
40
57
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUZBQW1GO0FBRW5GLHlHQUF5RztBQUN6RywrR0FBK0c7QUFDL0csa0dBQWtHO0FBRWxHOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFlBQVksRUFBRSxLQUFLO0lBQ25CLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsS0FBSyxFQUFFLEtBQUs7Q0FDSixDQUFDO0FBbUJYOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxRQUFrQjtJQUNsRCxNQUFNLEtBQUssR0FDVCxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUTtRQUMxRCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQ2xDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUNwQztRQUNILENBQUMsQ0FBQyxPQUFPLFFBQVEsS0FBSyxRQUFRO1lBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUN2QztZQUNILENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUN4QyxDQUFDO0lBQ1YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsUUFBUSxZQUFZLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxJQUEwQixFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ2xELENBQUMifQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUZBQW1GO0FBRW5GLHlHQUF5RztBQUN6RywrR0FBK0c7QUFDL0csa0dBQWtHO0FBRWxHOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsSUFBSSxFQUFFLElBQUk7SUFDVixXQUFXLEVBQUUsS0FBSztJQUNsQixPQUFPLEVBQUUsUUFBUTtJQUNqQixZQUFZLEVBQUUsS0FBSztJQUNuQixhQUFhLEVBQUUsSUFBSTtJQUNuQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLEtBQUssRUFBRSxLQUFLO0NBQ0osQ0FBQztBQW1CWDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFxQztJQUMvRCxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLO0lBQ2hDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDOUIsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEVBQUUsU0FBUztJQUN4QyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLO0lBQ2hDLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFLGFBQWE7SUFDN0MsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUUsZ0JBQWdCO0lBQ2pELENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTztJQUM1QyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0NBQ2pDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBa0I7SUFDbEQsTUFBTSxLQUFLLEdBQ1QsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFDMUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUNsQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FDcEM7UUFDSCxDQUFDLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUTtZQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQ2xDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FDdkM7WUFDSCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FDeEMsQ0FBQztJQUNWLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLFFBQVEsWUFBWSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBMEIsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNsRCxDQUFDIn0=
@@ -0,0 +1,18 @@
1
+ import type { Account, Chain, Transport, WalletClient } from 'viem';
2
+ import type { HexString } from '../binary.js';
3
+ import type { SupportedChainId } from '../chain.js';
4
+ import { ViemClient } from '../viem.js';
5
+ export declare function fetchEip712DomainVersion(executorAddress: HexString, ethClient: ViemClient): Promise<string>;
6
+ export declare function buildEip712Payload(params: {
7
+ executorAddress: HexString;
8
+ ethClient: ViemClient;
9
+ chainId: SupportedChainId;
10
+ handles: HexString[];
11
+ reencryptPubKey: Uint8Array;
12
+ }): Promise<import("../reencryption/eip712.js").EIP712<{
13
+ handles: `0x${string}`[];
14
+ publicKey: `0x${string}`;
15
+ }>>;
16
+ type WalletSignTypedDataParams = Parameters<WalletClient<Transport, Chain, Account>['signTypedData']>[0];
17
+ export declare function signEip712(walletClient: WalletClient<Transport, Chain, Account>, eip712Payload: WalletSignTypedDataParams): Promise<`0x${string}`>;
18
+ export {};
@@ -0,0 +1,46 @@
1
+ import { bytesToHex, getContract } from 'viem';
2
+ import { ATTESTED_DECRYPT_DOMAIN_NAME } from '../attesteddecrypt/attested-decrypt.js';
3
+ import { incoLightningAbi } from '../generated/abis/lightning.js';
4
+ import { incoVerifierAbi } from '../generated/abis/verifier.js';
5
+ import { createEIP712Payload } from '../reencryption/eip712.js';
6
+ // Fetches EIP712 domain version from on-chain verifier contract.
7
+ // This is needed to ensure the payload is signed with the correct domain version,
8
+ // which is required for the covalidator to verify the signature and process the request.
9
+ export async function fetchEip712DomainVersion(executorAddress, ethClient) {
10
+ let eip712DomainVersion;
11
+ const lightning = getContract({
12
+ address: executorAddress,
13
+ abi: incoLightningAbi,
14
+ client: ethClient,
15
+ });
16
+ const incoVerifierAddress = await lightning.read.incoVerifier();
17
+ const verifier = getContract({
18
+ address: incoVerifierAddress,
19
+ abi: incoVerifierAbi,
20
+ client: ethClient,
21
+ });
22
+ eip712DomainVersion = await verifier.read.getEIP712Version();
23
+ return eip712DomainVersion;
24
+ }
25
+ // Small helpers to make the main flow readable
26
+ export async function buildEip712Payload(params) {
27
+ const eip712DomainVersion = await fetchEip712DomainVersion(params.executorAddress, params.ethClient);
28
+ return createEIP712Payload({
29
+ chainId: BigInt(params.chainId),
30
+ primaryType: 'AttestedDecryptRequest',
31
+ primaryTypeFields: [
32
+ { name: 'handles', type: 'bytes32[]' },
33
+ { name: 'publicKey', type: 'bytes' },
34
+ ],
35
+ message: {
36
+ handles: params.handles,
37
+ publicKey: bytesToHex(params.reencryptPubKey),
38
+ },
39
+ domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
40
+ domainVersion: eip712DomainVersion,
41
+ });
42
+ }
43
+ export function signEip712(walletClient, eip712Payload) {
44
+ return walletClient.signTypedData(eip712Payload);
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwNzEyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VpcDcxMi9laXA3MTIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2hFLGlFQUFpRTtBQUNqRSxrRkFBa0Y7QUFDbEYseUZBQXlGO0FBQ3pGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLGVBQTBCLEVBQzFCLFNBQXFCO0lBRXJCLElBQUksbUJBQTJCLENBQUM7SUFFaEMsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQzVCLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEdBQUcsRUFBRSxnQkFBZ0I7UUFDckIsTUFBTSxFQUFFLFNBQVM7S0FDbEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEUsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBQzNCLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsR0FBRyxFQUFFLGVBQWU7UUFDcEIsTUFBTSxFQUFFLFNBQVM7S0FDbEIsQ0FBQyxDQUFDO0lBRUgsbUJBQW1CLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFFN0QsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsTUFNeEM7SUFDQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sd0JBQXdCLENBQ3hELE1BQU0sQ0FBQyxlQUFlLEVBQ3RCLE1BQU0sQ0FBQyxTQUFTLENBQ2pCLENBQUM7SUFFRixPQUFPLG1CQUFtQixDQUFDO1FBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQixXQUFXLEVBQUUsd0JBQXdCO1FBQ3JDLGlCQUFpQixFQUFFO1lBQ2pCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1NBQ3JDO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztTQUM5QztRQUNELFVBQVUsRUFBRSw0QkFBNEI7UUFDeEMsYUFBYSxFQUFFLG1CQUFtQjtLQUNuQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBTUQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsWUFBcUQsRUFDckQsYUFBd0M7SUFFeEMsT0FBTyxZQUFZLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ25ELENBQUMifQ==
@@ -0,0 +1 @@
1
+ export { buildEip712Payload, fetchEip712DomainVersion, signEip712, } from './eip712.js';
@@ -0,0 +1,2 @@
1
+ export { buildEip712Payload, fetchEip712DomainVersion, signEip712, } from './eip712.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWlwNzEyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLFVBQVUsR0FDWCxNQUFNLGFBQWEsQ0FBQyJ9
@@ -0,0 +1,49 @@
1
+ import type { Account, Chain, Transport, WalletClient } from 'viem';
2
+ import { validateHandle } from '../attesteddecrypt/attested-decrypt.js';
3
+ import { type HexString } from '../binary.js';
4
+ import { type SupportedChainId } from '../chain.js';
5
+ import { type EncryptionScheme, type SupportedFheType } from '../encryption/encryption.js';
6
+ import { KmsQuorumClient } from '../kms/quorumClient.js';
7
+ import type { XwingKeypair } from '../lite/xwing.js';
8
+ import type { BackoffConfig } from '../retry.js';
9
+ import { type EListDecryptionAttestation, type EncryptedEListDecryptionAttestation } from './types.js';
10
+ export { validateHandle };
11
+ export declare function eListAttestedDecrypt({ handle, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, executorAddress, }: {
12
+ handle: HexString;
13
+ backoffConfig?: Partial<BackoffConfig> | undefined;
14
+ walletClient: WalletClient<Transport, Chain, Account>;
15
+ chainId: SupportedChainId;
16
+ reencryptPubKey: Uint8Array;
17
+ reencryptKeypair: XwingKeypair;
18
+ kmsQuorumClient: KmsQuorumClient;
19
+ executorAddress: HexString;
20
+ }): Promise<EListDecryptionAttestation<EncryptionScheme, SupportedFheType>>;
21
+ export declare function eListAttestedDecrypt({ handle, backoffConfig, walletClient, chainId, reencryptPubKey, kmsQuorumClient, executorAddress, }: {
22
+ handle: HexString;
23
+ backoffConfig?: Partial<BackoffConfig> | undefined;
24
+ walletClient: WalletClient<Transport, Chain, Account>;
25
+ chainId: SupportedChainId;
26
+ reencryptPubKey: Uint8Array;
27
+ reencryptKeypair?: never;
28
+ kmsQuorumClient: KmsQuorumClient;
29
+ executorAddress: HexString;
30
+ }): Promise<EncryptedEListDecryptionAttestation<EncryptionScheme, SupportedFheType>>;
31
+ export declare function eListAttestedDecrypt({ handle, backoffConfig, walletClient, chainId, kmsQuorumClient, executorAddress, }: {
32
+ handle: HexString;
33
+ backoffConfig?: Partial<BackoffConfig> | undefined;
34
+ walletClient: WalletClient<Transport, Chain, Account>;
35
+ chainId: SupportedChainId;
36
+ reencryptPubKey?: never;
37
+ reencryptKeypair?: never;
38
+ kmsQuorumClient: KmsQuorumClient;
39
+ executorAddress: HexString;
40
+ }): Promise<EListDecryptionAttestation<EncryptionScheme, SupportedFheType>>;
41
+ /**
42
+ * Reveal a single elist handle without wallet authentication.
43
+ * Returns plaintext values along with an attestation of the checksum.
44
+ */
45
+ export declare function eListAttestedReveal({ handle, backoffConfig, kmsQuorumClient, }: {
46
+ handle: HexString;
47
+ backoffConfig?: Partial<BackoffConfig> | undefined;
48
+ kmsQuorumClient: KmsQuorumClient;
49
+ }): Promise<EListDecryptionAttestation<EncryptionScheme, SupportedFheType>>;
@@ -0,0 +1,89 @@
1
+ import { create } from '@bufbuild/protobuf';
2
+ import { hexToBytes } from 'viem';
3
+ import { buildHandlesWithProofs, validateHandle, } from '../attesteddecrypt/attested-decrypt.js';
4
+ import { bytesToBigInt } from '../binary.js';
5
+ import { buildEip712Payload, signEip712 } from '../eip712/eip712.js';
6
+ import { bigintToPlaintext, } from '../encryption/encryption.js';
7
+ import { EListAttestedDecryptRequestSchema, EListAttestedRevealRequestSchema, } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
8
+ import { getEListElementType } from '../handle.js';
9
+ import { decrypt } from '../lite/xwing.js';
10
+ import { EListAttestedDecryptError, } from './types.js';
11
+ export { validateHandle };
12
+ // Implementation
13
+ export async function eListAttestedDecrypt({ handle, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, executorAddress, }) {
14
+ try {
15
+ validateHandle(handle);
16
+ const eip712Payload = await buildEip712Payload({
17
+ executorAddress,
18
+ ethClient: walletClient,
19
+ chainId,
20
+ handles: [handle],
21
+ reencryptPubKey: reencryptPubKey ?? new Uint8Array(),
22
+ });
23
+ const eip712SignatureHex = await signEip712(walletClient, eip712Payload);
24
+ const handlesWithProofs = buildHandlesWithProofs([handle]);
25
+ const eListAttestedDecryptRequest = buildEListAttestedDecryptRequest({
26
+ userAddress: walletClient.account.address,
27
+ handleWithProof: handlesWithProofs[0],
28
+ eip712Signature: hexToBytes(eip712SignatureHex),
29
+ ...(reencryptPubKey !== undefined ? { reencryptPubKey } : {}),
30
+ });
31
+ const encryptedResponse = await kmsQuorumClient.eListAttestedDecrypt(eListAttestedDecryptRequest, backoffConfig, reencryptKeypair, executorAddress, walletClient);
32
+ // If reencryptPubKey is provided with a keypair, decrypt the values
33
+ if (reencryptPubKey !== undefined && reencryptKeypair) {
34
+ return {
35
+ ...encryptedResponse,
36
+ values: await decryptEncryptedEListValues(encryptedResponse.values, reencryptKeypair, getEListElementType(handle)),
37
+ };
38
+ }
39
+ return encryptedResponse;
40
+ }
41
+ catch (error) {
42
+ if (error instanceof EListAttestedDecryptError) {
43
+ throw error;
44
+ }
45
+ throw new EListAttestedDecryptError('Failed to decrypt elist handle', error);
46
+ }
47
+ }
48
+ /**
49
+ * Reveal a single elist handle without wallet authentication.
50
+ * Returns plaintext values along with an attestation of the checksum.
51
+ */
52
+ export async function eListAttestedReveal({ handle, backoffConfig, kmsQuorumClient, }) {
53
+ try {
54
+ validateHandle(handle);
55
+ const eListAttestedRevealRequest = create(EListAttestedRevealRequestSchema, {
56
+ handle,
57
+ });
58
+ return await kmsQuorumClient.eListAttestedReveal(eListAttestedRevealRequest, backoffConfig);
59
+ }
60
+ catch (error) {
61
+ if (error instanceof EListAttestedDecryptError) {
62
+ throw error;
63
+ }
64
+ throw new EListAttestedDecryptError('Failed to reveal elist handle', error);
65
+ }
66
+ }
67
+ function buildEListAttestedDecryptRequest(params) {
68
+ return create(EListAttestedDecryptRequestSchema, {
69
+ userAddress: params.userAddress,
70
+ elistHandleWithProof: params.handleWithProof,
71
+ eip712Signature: params.eip712Signature,
72
+ reencryptPubKey: params.reencryptPubKey
73
+ ? params.reencryptPubKey
74
+ : new Uint8Array(),
75
+ });
76
+ }
77
+ // Helper function that transforms EncryptResultOf[] to PlaintextOf[] by decrypting the encrypted values
78
+ async function decryptEncryptedEListValues(values, reencryptKeypair, handleType) {
79
+ return Promise.all(values.map(async (value) => {
80
+ // Check if value is EncryptResultOf (has ciphertext property)
81
+ if ('ciphertext' in value) {
82
+ const ct = hexToBytes(value.ciphertext.value);
83
+ const plaintextBytes = await decrypt(reencryptKeypair, ct);
84
+ return bigintToPlaintext(value.ciphertext.scheme, handleType, bytesToBigInt(plaintextBytes));
85
+ }
86
+ return value;
87
+ }));
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpc3QtYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGlzdGF0dGVzdGVkZGVjcnlwdC9lbGlzdC1hdHRlc3RlZC1kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsY0FBYyxHQUNmLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFFN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFDTCxpQkFBaUIsR0FLbEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBRUwsaUNBQWlDLEVBQ2pDLGdDQUFnQyxHQUNqQyxNQUFNLG9EQUFvRCxDQUFDO0FBRTVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUNMLHlCQUF5QixHQUcxQixNQUFNLFlBQVksQ0FBQztBQUVwQixPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7QUFnRTFCLGlCQUFpQjtBQUNqQixNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQixDQUFDLEVBQ3pDLE1BQU0sRUFDTixhQUFhLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixlQUFlLEdBVWhCO0lBSUMsSUFBSSxDQUFDO1FBQ0gsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZCLE1BQU0sYUFBYSxHQUFHLE1BQU0sa0JBQWtCLENBQUM7WUFDN0MsZUFBZTtZ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
@@ -0,0 +1,2 @@
1
+ export { eListAttestedDecrypt, eListAttestedReveal, } from './elist-attested-decrypt.js';
2
+ export * from './types.js';
@@ -0,0 +1,3 @@
1
+ export { eListAttestedDecrypt, eListAttestedReveal, } from './elist-attested-decrypt.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxpc3RhdHRlc3RlZGRlY3J5cHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxjQUFjLFlBQVksQ0FBQyJ9
@@ -0,0 +1,31 @@
1
+ import type { HexString } from '../binary.js';
2
+ import type { EncryptionScheme, EncryptResultOf, PlaintextOf, SupportedFheType } from '../encryption/encryption.js';
3
+ import { handleTypes } from '../index.js';
4
+ import type { BackoffConfig } from '../retry.js';
5
+ /**
6
+ * Custom error class for elist attested decrypt operations.
7
+ */
8
+ export declare class EListAttestedDecryptError extends Error {
9
+ readonly cause?: unknown | undefined;
10
+ constructor(message: string, cause?: unknown | undefined);
11
+ }
12
+ export type EListDecryptionAttestation<S extends EncryptionScheme, T extends SupportedFheType> = {
13
+ handle: HexString;
14
+ commitmentProof: PlaintextOf<S, typeof handleTypes.euint256>;
15
+ values: PlaintextOf<S, T>[];
16
+ covalidatorSignatures: Uint8Array[];
17
+ commitments: Uint8Array[];
18
+ };
19
+ export type EncryptedEListDecryptionAttestation<S extends EncryptionScheme, T extends SupportedFheType> = {
20
+ handle: HexString;
21
+ commitmentProof: PlaintextOf<S, typeof handleTypes.euint256>;
22
+ values: EncryptResultOf<S, T>[];
23
+ covalidatorSignatures: Uint8Array[];
24
+ commitments: Uint8Array[];
25
+ };
26
+ export type EListAttestedDecryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: EListAttestedDecryptFnArgs<S, T>) => Promise<EListDecryptionAttestation<S, T>>;
27
+ export type EListAttestedDecryptFnArgs<S extends EncryptionScheme, T extends SupportedFheType> = {
28
+ /** The handle to decrypt */
29
+ handle: HexString;
30
+ backoffConfig?: Partial<BackoffConfig>;
31
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Custom error class for elist attested decrypt operations.
3
+ */
4
+ export class EListAttestedDecryptError extends Error {
5
+ cause;
6
+ constructor(message, cause) {
7
+ super(message);
8
+ this.cause = cause;
9
+ this.name = 'EListAttestedDecryptError';
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxpc3RhdHRlc3RlZGRlY3J5cHQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsS0FBSztJQUdoQztJQUZsQixZQUNFLE9BQWUsRUFDQyxLQUFlO1FBRS9CLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUZDLFVBQUssR0FBTCxLQUFLLENBQVU7UUFHL0IsSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztJQUMxQyxDQUFDO0NBQ0YifQ==
@@ -711,20 +711,6 @@ export declare const incoLightningAbi: readonly [{
711
711
  readonly type: "bytes32";
712
712
  }];
713
713
  readonly stateMutability: "nonpayable";
714
- }, {
715
- readonly type: "function";
716
- readonly inputs: readonly [{
717
- readonly name: "randType";
718
- readonly internalType: "enum ETypes";
719
- readonly type: "uint8";
720
- }];
721
- readonly name: "eRand";
722
- readonly outputs: readonly [{
723
- readonly name: "result";
724
- readonly internalType: "bytes32";
725
- readonly type: "bytes32";
726
- }];
727
- readonly stateMutability: "payable";
728
714
  }, {
729
715
  readonly type: "function";
730
716
  readonly inputs: readonly [{
@@ -2213,31 +2199,6 @@ export declare const incoLightningAbi: readonly [{
2213
2199
  readonly indexed: false;
2214
2200
  }];
2215
2201
  readonly name: "ENot";
2216
- }, {
2217
- readonly type: "event";
2218
- readonly anonymous: false;
2219
- readonly inputs: readonly [{
2220
- readonly name: "counter";
2221
- readonly internalType: "uint256";
2222
- readonly type: "uint256";
2223
- readonly indexed: true;
2224
- }, {
2225
- readonly name: "randType";
2226
- readonly internalType: "enum ETypes";
2227
- readonly type: "uint8";
2228
- readonly indexed: false;
2229
- }, {
2230
- readonly name: "result";
2231
- readonly internalType: "bytes32";
2232
- readonly type: "bytes32";
2233
- readonly indexed: true;
2234
- }, {
2235
- readonly name: "eventId";
2236
- readonly internalType: "uint256";
2237
- readonly type: "uint256";
2238
- readonly indexed: false;
2239
- }];
2240
- readonly name: "ERand";
2241
2202
  }, {
2242
2203
  readonly type: "event";
2243
2204
  readonly anonymous: false;