@inco/js 0.9.0-devnet-test-10 → 0.10.0-devnet-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +503 -47
- package/dist/cjs/advancedacl/session-key.d.ts +5 -5
- package/dist/cjs/advancedacl/session-key.js +33 -9
- package/dist/cjs/attestedcompute/attested-compute.d.ts +1 -2
- package/dist/cjs/attestedcompute/attested-compute.js +15 -7
- package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +5 -43
- package/dist/cjs/attesteddecrypt/attested-decrypt.js +33 -96
- package/dist/cjs/attestedreveal/attested-reveal.d.ts +21 -0
- package/dist/cjs/attestedreveal/attested-reveal.js +31 -0
- package/dist/cjs/attestedreveal/index.d.ts +2 -0
- package/dist/cjs/attestedreveal/index.js +21 -0
- package/dist/cjs/attestedreveal/types.d.ts +4 -0
- package/dist/cjs/attestedreveal/types.js +13 -0
- package/dist/cjs/binary.d.ts +82 -0
- package/dist/cjs/binary.js +87 -5
- package/dist/cjs/chain.d.ts +29 -4
- package/dist/cjs/chain.js +34 -6
- package/dist/cjs/eip712/eip712.d.ts +18 -0
- package/dist/cjs/eip712/eip712.js +51 -0
- package/dist/cjs/eip712/index.d.ts +1 -0
- package/dist/cjs/eip712/index.js +8 -0
- package/dist/cjs/elistattesteddecrypt/elist-attested-decrypt.d.ts +49 -0
- package/dist/cjs/elistattesteddecrypt/elist-attested-decrypt.js +94 -0
- package/dist/cjs/elistattesteddecrypt/index.d.ts +2 -0
- package/dist/cjs/elistattesteddecrypt/index.js +22 -0
- package/dist/cjs/elistattesteddecrypt/types.d.ts +31 -0
- package/dist/cjs/elistattesteddecrypt/types.js +16 -0
- package/dist/cjs/encryption/encryption.d.ts +115 -0
- package/dist/cjs/encryption/encryption.js +98 -7
- package/dist/cjs/encryption/index.d.ts +1 -1
- package/dist/cjs/encryption/index.js +17 -16
- package/dist/cjs/generated/abis/lightning.d.ts +1119 -107
- package/dist/cjs/generated/abis/lightning.js +762 -52
- package/dist/cjs/generated/abis/test-elist.d.ts +20 -2
- package/dist/cjs/generated/abis/test-elist.js +16 -3
- package/dist/cjs/generated/abis/verifier.d.ts +118 -15
- package/dist/cjs/generated/abis/verifier.js +71 -19
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +23 -37
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.js +36 -41
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.js +1 -1
- package/dist/cjs/generated/es/inco/helioswrapper/v1/helioswrapper_pb.js +1 -1
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +16 -0
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +3 -3
- package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.js +1 -1
- package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
- package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +3 -3
- package/dist/cjs/generated/lightning.d.ts +150 -0
- package/dist/cjs/generated/lightning.js +157 -1
- package/dist/cjs/generated/local-node.d.ts +9 -9
- package/dist/cjs/generated/local-node.js +37 -10
- package/dist/cjs/handle.d.ts +72 -0
- package/dist/cjs/handle.js +113 -9
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +11 -2
- package/dist/cjs/kms/client.d.ts +1 -1
- package/dist/cjs/kms/client.js +4 -3
- package/dist/cjs/kms/quorumClient.d.ts +18 -12
- package/dist/cjs/kms/quorumClient.js +212 -231
- package/dist/cjs/kms/quorumConsistency.d.ts +82 -0
- package/dist/cjs/kms/quorumConsistency.js +269 -0
- package/dist/cjs/kms/signatureVerification.d.ts +35 -0
- package/dist/cjs/kms/signatureVerification.js +88 -0
- package/dist/cjs/kms/thresholdPromises.d.ts +4 -3
- package/dist/cjs/kms/thresholdPromises.js +25 -15
- package/dist/cjs/lite/attested-compute.d.ts +2 -2
- package/dist/cjs/lite/attested-compute.js +2 -3
- package/dist/cjs/lite/attested-decrypt.d.ts +2 -2
- package/dist/cjs/lite/attested-decrypt.js +2 -3
- package/dist/cjs/lite/hadu.d.ts +1 -1
- package/dist/cjs/lite/hadu.js +3 -3
- package/dist/cjs/lite/index.d.ts +6 -2
- package/dist/cjs/lite/index.js +8 -14
- package/dist/cjs/lite/lightning.d.ts +96 -47
- package/dist/cjs/lite/lightning.js +221 -267
- package/dist/cjs/lite/types.d.ts +47 -0
- package/dist/cjs/lite/types.js +3 -0
- package/dist/cjs/lite/xwing.d.ts +33 -2
- package/dist/cjs/lite/xwing.js +62 -7
- package/dist/cjs/local/local-node.d.ts +18 -0
- package/dist/cjs/local/local-node.js +18 -3
- package/dist/cjs/reencryption/eip712.d.ts +27 -0
- package/dist/cjs/reencryption/eip712.js +20 -7
- package/dist/cjs/reencryption/types.d.ts +24 -0
- package/dist/cjs/retry.d.ts +14 -0
- package/dist/cjs/retry.js +58 -2
- package/dist/cjs/test/mocks.d.ts +6 -1
- package/dist/cjs/test/mocks.js +31 -6
- package/dist/cjs/viem.d.ts +361 -1
- package/dist/cjs/viem.js +14 -1
- package/dist/esm/advancedacl/session-key.d.ts +5 -5
- package/dist/esm/advancedacl/session-key.js +33 -9
- package/dist/esm/attestedcompute/attested-compute.d.ts +1 -2
- package/dist/esm/attestedcompute/attested-compute.js +13 -5
- package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +5 -43
- package/dist/esm/attesteddecrypt/attested-decrypt.js +34 -96
- package/dist/esm/attestedreveal/attested-reveal.d.ts +21 -0
- package/dist/esm/attestedreveal/attested-reveal.js +28 -0
- package/dist/esm/attestedreveal/index.d.ts +2 -0
- package/dist/esm/attestedreveal/index.js +3 -0
- package/dist/esm/attestedreveal/types.d.ts +4 -0
- package/dist/esm/attestedreveal/types.js +9 -0
- package/dist/esm/binary.d.ts +82 -0
- package/dist/esm/binary.js +87 -5
- package/dist/esm/chain.d.ts +29 -4
- package/dist/esm/chain.js +33 -5
- package/dist/esm/eip712/eip712.d.ts +18 -0
- package/dist/esm/eip712/eip712.js +46 -0
- package/dist/esm/eip712/index.d.ts +1 -0
- package/dist/esm/eip712/index.js +2 -0
- package/dist/esm/elistattesteddecrypt/elist-attested-decrypt.d.ts +49 -0
- package/dist/esm/elistattesteddecrypt/elist-attested-decrypt.js +89 -0
- package/dist/esm/elistattesteddecrypt/index.d.ts +2 -0
- package/dist/esm/elistattesteddecrypt/index.js +3 -0
- package/dist/esm/elistattesteddecrypt/types.d.ts +31 -0
- package/dist/esm/elistattesteddecrypt/types.js +12 -0
- package/dist/esm/encryption/encryption.d.ts +115 -0
- package/dist/esm/encryption/encryption.js +98 -7
- package/dist/esm/encryption/index.d.ts +1 -1
- package/dist/esm/encryption/index.js +2 -2
- package/dist/esm/generated/abis/lightning.d.ts +1119 -107
- package/dist/esm/generated/abis/lightning.js +761 -51
- package/dist/esm/generated/abis/test-elist.d.ts +20 -2
- package/dist/esm/generated/abis/test-elist.js +16 -3
- package/dist/esm/generated/abis/verifier.d.ts +118 -15
- package/dist/esm/generated/abis/verifier.js +71 -19
- package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +23 -37
- package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.js +35 -40
- package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js +1 -1
- package/dist/esm/generated/es/inco/helioswrapper/v1/helioswrapper_pb.js +1 -1
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +16 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +3 -3
- package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +1 -1
- package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
- package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +3 -3
- package/dist/esm/generated/lightning.d.ts +150 -0
- package/dist/esm/generated/lightning.js +157 -1
- package/dist/esm/generated/local-node.d.ts +9 -9
- package/dist/esm/generated/local-node.js +37 -10
- package/dist/esm/handle.d.ts +72 -0
- package/dist/esm/handle.js +110 -8
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/kms/client.d.ts +1 -1
- package/dist/esm/kms/client.js +3 -2
- package/dist/esm/kms/quorumClient.d.ts +18 -12
- package/dist/esm/kms/quorumClient.js +213 -232
- package/dist/esm/kms/quorumConsistency.d.ts +82 -0
- package/dist/esm/kms/quorumConsistency.js +260 -0
- package/dist/esm/kms/signatureVerification.d.ts +35 -0
- package/dist/esm/kms/signatureVerification.js +84 -0
- package/dist/esm/kms/thresholdPromises.d.ts +4 -3
- package/dist/esm/kms/thresholdPromises.js +25 -15
- package/dist/esm/lite/attested-compute.d.ts +2 -2
- package/dist/esm/lite/attested-compute.js +3 -3
- package/dist/esm/lite/attested-decrypt.d.ts +2 -2
- package/dist/esm/lite/attested-decrypt.js +3 -3
- package/dist/esm/lite/hadu.d.ts +1 -1
- package/dist/esm/lite/hadu.js +2 -2
- package/dist/esm/lite/index.d.ts +6 -2
- package/dist/esm/lite/index.js +5 -3
- package/dist/esm/lite/lightning.d.ts +96 -47
- package/dist/esm/lite/lightning.js +217 -263
- package/dist/esm/lite/types.d.ts +47 -0
- package/dist/esm/lite/types.js +2 -0
- package/dist/esm/lite/xwing.d.ts +33 -2
- package/dist/esm/lite/xwing.js +59 -7
- package/dist/esm/local/local-node.d.ts +18 -0
- package/dist/esm/local/local-node.js +18 -3
- package/dist/esm/reencryption/eip712.d.ts +27 -0
- package/dist/esm/reencryption/eip712.js +20 -7
- package/dist/esm/reencryption/types.d.ts +24 -0
- package/dist/esm/retry.d.ts +14 -0
- package/dist/esm/retry.js +56 -2
- package/dist/esm/test/mocks.d.ts +6 -1
- package/dist/esm/test/mocks.js +31 -8
- package/dist/esm/viem.d.ts +361 -1
- package/dist/esm/viem.js +15 -2
- package/dist/types/advancedacl/session-key.d.ts +5 -5
- package/dist/types/attestedcompute/attested-compute.d.ts +1 -2
- package/dist/types/attesteddecrypt/attested-decrypt.d.ts +5 -43
- package/dist/types/attestedreveal/attested-reveal.d.ts +21 -0
- package/dist/types/attestedreveal/index.d.ts +2 -0
- package/dist/types/attestedreveal/types.d.ts +4 -0
- package/dist/types/binary.d.ts +82 -0
- package/dist/types/chain.d.ts +29 -4
- package/dist/types/eip712/eip712.d.ts +18 -0
- package/dist/types/eip712/index.d.ts +1 -0
- package/dist/types/elistattesteddecrypt/elist-attested-decrypt.d.ts +49 -0
- package/dist/types/elistattesteddecrypt/index.d.ts +2 -0
- package/dist/types/elistattesteddecrypt/types.d.ts +31 -0
- package/dist/types/encryption/encryption.d.ts +115 -0
- package/dist/types/encryption/index.d.ts +1 -1
- package/dist/types/generated/abis/lightning.d.ts +1119 -107
- package/dist/types/generated/abis/test-elist.d.ts +20 -2
- package/dist/types/generated/abis/verifier.d.ts +118 -15
- package/dist/types/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +23 -37
- package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +16 -0
- package/dist/types/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
- package/dist/types/generated/lightning.d.ts +150 -0
- package/dist/types/generated/local-node.d.ts +9 -9
- package/dist/types/handle.d.ts +72 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/kms/client.d.ts +1 -1
- package/dist/types/kms/quorumClient.d.ts +18 -12
- package/dist/types/kms/quorumConsistency.d.ts +82 -0
- package/dist/types/kms/signatureVerification.d.ts +35 -0
- package/dist/types/kms/thresholdPromises.d.ts +4 -3
- package/dist/types/lite/attested-compute.d.ts +2 -2
- package/dist/types/lite/attested-decrypt.d.ts +2 -2
- package/dist/types/lite/hadu.d.ts +1 -1
- package/dist/types/lite/index.d.ts +6 -2
- package/dist/types/lite/lightning.d.ts +96 -47
- package/dist/types/lite/types.d.ts +47 -0
- package/dist/types/lite/xwing.d.ts +33 -2
- package/dist/types/local/local-node.d.ts +18 -0
- package/dist/types/reencryption/eip712.d.ts +27 -0
- package/dist/types/reencryption/types.d.ts +24 -0
- package/dist/types/retry.d.ts +14 -0
- package/dist/types/test/mocks.d.ts +6 -1
- package/dist/types/viem.d.ts +361 -1
- package/package.json +19 -21
- package/dist/cjs/generated/abis/lightning-preview.d.ts +0 -1385
- package/dist/cjs/generated/abis/lightning-preview.js +0 -857
- package/dist/esm/generated/abis/lightning-preview.d.ts +0 -1385
- package/dist/esm/generated/abis/lightning-preview.js +0 -854
- package/dist/types/generated/abis/lightning-preview.d.ts +0 -1385
|
@@ -8,13 +8,16 @@ exports.sessionKeyAttestedCompute = sessionKeyAttestedCompute;
|
|
|
8
8
|
exports.sessionKeyAttestedDecrypt = sessionKeyAttestedDecrypt;
|
|
9
9
|
const protobuf_1 = require("@bufbuild/protobuf");
|
|
10
10
|
const viem_1 = require("viem");
|
|
11
|
-
const lightning_preview_js_1 = require("../generated/abis/lightning-preview.js");
|
|
12
11
|
const lightning_js_1 = require("../generated/abis/lightning.js");
|
|
13
12
|
const verifier_js_1 = require("../generated/abis/verifier.js");
|
|
14
13
|
const index_js_1 = require("../index.js");
|
|
15
14
|
const index_js_2 = require("../lite/index.js");
|
|
15
|
+
const xwing_js_1 = require("../lite/xwing.js");
|
|
16
16
|
const index_js_3 = require("../reencryption/index.js");
|
|
17
|
+
const types_js_1 = require("../attestedcompute/types.js");
|
|
17
18
|
const attested_decrypt_js_1 = require("../attesteddecrypt/attested-decrypt.js");
|
|
19
|
+
const types_js_2 = require("../attesteddecrypt/types.js");
|
|
20
|
+
const eip712_js_1 = require("../eip712/eip712.js");
|
|
18
21
|
const kms_service_pb_js_1 = require("../generated/es/inco/kms/lite/v1/kms_service_pb.js");
|
|
19
22
|
const types_pb_js_1 = require("../generated/es/inco/kms/lite/v1/types_pb.js");
|
|
20
23
|
// Given a sharer's wallet client, an incoLite contract address, and a
|
|
@@ -36,9 +39,19 @@ async function createAllowanceVoucher(incoLiteAddress, sharerWalletClient, verif
|
|
|
36
39
|
}
|
|
37
40
|
// Let the sharer grant a session to the requester.
|
|
38
41
|
async function grantSessionKey({ chainId, incoLiteAddress, sessionVerifierContractAddress, granteeAddress, sharerWalletClient, expiresAt, }) {
|
|
42
|
+
// Validate that expiresAt is a valid Date object
|
|
43
|
+
if (!(expiresAt instanceof Date) || isNaN(expiresAt.getTime())) {
|
|
44
|
+
throw new Error('expiresAt must be a valid Date object');
|
|
45
|
+
}
|
|
46
|
+
const nowMs = Date.now();
|
|
47
|
+
const expiresAtMs = expiresAt.getTime();
|
|
48
|
+
// Validate that expiresAt is in the future
|
|
49
|
+
if (expiresAtMs < nowMs) {
|
|
50
|
+
throw new Error('expiresAt must be in the future');
|
|
51
|
+
}
|
|
39
52
|
const session = {
|
|
40
53
|
decrypter: granteeAddress,
|
|
41
|
-
expiresAt: BigInt(Math.floor(
|
|
54
|
+
expiresAt: BigInt(Math.floor(expiresAtMs / 1000)),
|
|
42
55
|
};
|
|
43
56
|
const sharerArgData = (0, viem_1.encodeAbiParameters)(getSessionAbi(), [
|
|
44
57
|
session.decrypter,
|
|
@@ -119,7 +132,8 @@ async function grantSessionKeyCustomVerifier({ chainId, incoLiteAddress, session
|
|
|
119
132
|
}
|
|
120
133
|
async function updateActiveVouchersSessionNonce(incoLiteAddress, sharerWalletClient) {
|
|
121
134
|
const verifier = await getIncoVerifier(incoLiteAddress, sharerWalletClient);
|
|
122
|
-
const
|
|
135
|
+
const salt = (0, viem_1.bytesToHex)(crypto.getRandomValues(new Uint8Array(32)));
|
|
136
|
+
const txHash = await verifier.write.updateActiveVouchersSessionNonce([salt]);
|
|
123
137
|
return txHash;
|
|
124
138
|
}
|
|
125
139
|
// The sessionKeyAttestedCompute function is a decryptor that uses a session key
|
|
@@ -127,7 +141,12 @@ async function updateActiveVouchersSessionNonce(incoLiteAddress, sharerWalletCli
|
|
|
127
141
|
async function sessionKeyAttestedCompute({ lhsHandle, op, rhsPlaintext, backoffConfig, chainId, kmsQuorumClient, ephemeralAccount, allowanceVoucherWithSig, requesterArgData, ethClient, executorAddress, reencryptPubKey, reencryptKeypair, }) {
|
|
128
142
|
const requesterAccount = ephemeralAccount;
|
|
129
143
|
const rhsPlaintextBig = BigInt(rhsPlaintext);
|
|
130
|
-
|
|
144
|
+
if (reencryptPubKey &&
|
|
145
|
+
reencryptKeypair &&
|
|
146
|
+
!(0, xwing_js_1.reencryptPublicKeysMatch)(reencryptPubKey, reencryptKeypair)) {
|
|
147
|
+
throw new types_js_1.AttestedComputeError('reencryptPubKey does not match reencryptKeypair public key');
|
|
148
|
+
}
|
|
149
|
+
const eip712DomainVersion = await (0, eip712_js_1.fetchEip712DomainVersion)(executorAddress, ethClient);
|
|
131
150
|
// Sign the EIP712 attesting that the requester has access to the private key
|
|
132
151
|
// corresponding to the ephemeral public key.
|
|
133
152
|
const eip712Payload = (0, index_js_3.createEIP712Payload)({
|
|
@@ -220,7 +239,12 @@ async function sessionKeyAttestedCompute({ lhsHandle, op, rhsPlaintext, backoffC
|
|
|
220
239
|
*/
|
|
221
240
|
async function sessionKeyAttestedDecrypt({ chainId, kmsQuorumClient, handles, ephemeralAccount, allowanceVoucherWithSig, requesterArgData, backoffConfig, reencryptPubKey, reencryptKeypair, ethClient, executorAddress, }) {
|
|
222
241
|
const requesterAccount = ephemeralAccount;
|
|
223
|
-
|
|
242
|
+
if (reencryptPubKey &&
|
|
243
|
+
reencryptKeypair &&
|
|
244
|
+
!(0, xwing_js_1.reencryptPublicKeysMatch)(reencryptPubKey, reencryptKeypair)) {
|
|
245
|
+
throw new types_js_2.AttestedDecryptError('reencryptPubKey does not match reencryptKeypair public key');
|
|
246
|
+
}
|
|
247
|
+
const eip712DomainVersion = await (0, eip712_js_1.fetchEip712DomainVersion)(executorAddress, ethClient);
|
|
224
248
|
// Sign the EIP712 attesting that the requester has access to the private key
|
|
225
249
|
// corresponding to the ephemeral public key.
|
|
226
250
|
const eip712Payload = (0, index_js_3.createEIP712Payload)({
|
|
@@ -285,7 +309,7 @@ async function sessionKeyAttestedDecrypt({ chainId, kmsQuorumClient, handles, ep
|
|
|
285
309
|
function getAllowanceVoucherAbi() {
|
|
286
310
|
// Find the `allowanceVoucherDigest` function, it takes an AllowanceVoucher
|
|
287
311
|
// as sole argument.
|
|
288
|
-
const allowanceVoucherDigest =
|
|
312
|
+
const allowanceVoucherDigest = lightning_js_1.advancedAccessControlAbi.find((item) => item.name === 'allowanceVoucherDigest');
|
|
289
313
|
if (!allowanceVoucherDigest) {
|
|
290
314
|
throw new Error('allowanceVoucherDigest not found');
|
|
291
315
|
}
|
|
@@ -301,7 +325,7 @@ function getAllowanceVoucherAbi() {
|
|
|
301
325
|
// We specifically created an ABIHelper.sol contract to export the Session
|
|
302
326
|
// struct from the SessionVerifier contract.
|
|
303
327
|
function getSessionAbi() {
|
|
304
|
-
const getSession =
|
|
328
|
+
const getSession = lightning_js_1.abiHelperAbi.find((item) => 'name' in item && item.name === 'getSession');
|
|
305
329
|
if (!getSession) {
|
|
306
330
|
throw new Error('getSession not found');
|
|
307
331
|
}
|
|
@@ -322,7 +346,7 @@ function getCanUseSessionAbi() {
|
|
|
322
346
|
function getAdvancedAcl(incoVerifierAddress, sharerWalletClient) {
|
|
323
347
|
return (0, viem_1.getContract)({
|
|
324
348
|
address: incoVerifierAddress,
|
|
325
|
-
abi:
|
|
349
|
+
abi: lightning_js_1.advancedAccessControlAbi,
|
|
326
350
|
client: sharerWalletClient,
|
|
327
351
|
});
|
|
328
352
|
}
|
|
@@ -342,4 +366,4 @@ async function getIncoVerifier(incoLiteAddress, walletClient) {
|
|
|
342
366
|
client: walletClient,
|
|
343
367
|
});
|
|
344
368
|
}
|
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1rZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWR2YW5jZWRhY2wvc2Vzc2lvbi1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFzRkEsd0RBcUJDO0FBdUNELDBDQWlFQztBQUVELHNFQXVEQztBQUVELDRFQU9DO0FBMENELDhEQWlIQztBQWtFRCw4REF3R0M7QUExbEJELGlEQUE0QztBQUM1QywrQkFhYztBQVdkLGlGQUdnRDtBQUNoRCxpRUFHd0M7QUFDeEMsK0RBQWdFO0FBQ2hFLDBDQUF5RDtBQU96RCwrQ0FLMEI7QUFDMUIsdURBQStEO0FBSy9ELGdGQUdnRDtBQUNoRCwwRkFHNEQ7QUFDNUQsOEVBS3NEO0FBa0J0RCxzRUFBc0U7QUFDdEUsd0VBQXdFO0FBQ3hFLCtCQUErQjtBQUN4QixLQUFLLFVBQVUsc0JBQXNCLENBQzFDLGVBQXdCLEVBQ3hCLGtCQUEyRCxFQUMzRCxpQkFBMEIsRUFDMUIsWUFBaUIsRUFDakIsYUFBa0I7SUFFbEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFNUUsMEVBQTBFO0lBQzFFLHdDQUF3QztJQUN4QyxNQUFNLFlBQVksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUM7UUFDckUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU87S0FDbkMsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsWUFBWTtRQUNaLGFBQWE7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQXNDRCxtREFBbUQ7QUFDNUMsS0FBSyxVQUFVLGVBQWUsQ0FBQyxFQUNwQyxPQUFPLEVBQ1AsZUFBZSxFQUNmLDhCQUE4QixFQUM5QixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFNBQVMsR0FDVztJQUNwQixNQUFNLE9BQU8sR0FBRztRQUNkLFNBQVMsRUFBRSxjQUFjO1FBQ3pC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
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1rZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWR2YW5jZWRhY2wvc2Vzc2lvbi1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFvRkEsd0RBcUJDO0FBdUNELDBDQThFQztBQUVELHNFQXVEQztBQUVELDRFQVFDO0FBcUNELDhEQTBIQztBQTZERCw4REFpSEM7QUE5bUJELGlEQUE0QztBQUM1QywrQkFhYztBQVdkLGlFQUt3QztBQUN4QywrREFBZ0U7QUFDaEUsMENBQXlEO0FBTXpELCtDQUcwQjtBQUMxQiwrQ0FBK0U7QUFDL0UsdURBQStEO0FBSS9ELDBEQUdxQztBQUNyQyxnRkFBc0Y7QUFDdEYsMERBQW1FO0FBQ25FLG1EQUErRDtBQUMvRCwwRkFHNEQ7QUFDNUQsOEVBS3NEO0FBa0J0RCxzRUFBc0U7QUFDdEUsd0VBQXdFO0FBQ3hFLCtCQUErQjtBQUN4QixLQUFLLFVBQVUsc0JBQXNCLENBQzFDLGVBQXdCLEVBQ3hCLGtCQUEyRCxFQUMzRCxpQkFBMEIsRUFDMUIsWUFBaUIsRUFDakIsYUFBa0I7SUFFbEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFNUUsMEVBQTBFO0lBQzFFLHdDQUF3QztJQUN4QyxNQUFNLFlBQVksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUM7UUFDckUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU87S0FDbkMsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsWUFBWTtRQUNaLGFBQWE7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQXNDRCxtREFBbUQ7QUFDNUMsS0FBSyxVQUFVLGVBQWUsQ0FBQyxFQUNwQyxPQUFPLEVBQ1AsZUFBZSxFQUNmLDhCQUE4QixFQUM5QixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFNBQVMsR0FDVztJQUNwQixp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
|
|
@@ -4,11 +4,10 @@ import { HexString } from '../binary.js';
|
|
|
4
4
|
import { SupportedChainId } from '../chain.js';
|
|
5
5
|
import type { EncryptionScheme, SupportedFheType } from '../encryption/encryption.js';
|
|
6
6
|
import { KmsQuorumClient } from '../kms/quorumClient.js';
|
|
7
|
-
import type
|
|
7
|
+
import { type XwingKeypair } from '../lite/xwing.js';
|
|
8
8
|
import type { BackoffConfig } from '../retry.js';
|
|
9
9
|
import { AttestedComputeOP } from './types.js';
|
|
10
10
|
export declare const ATTESTED_COMPUTE_DOMAIN_NAME = "IncoAttestedCompute";
|
|
11
|
-
export declare const DEFAULT_ATTESTED_COMPUTE_DOMAIN_VERSION = "2";
|
|
12
11
|
/**
|
|
13
12
|
* Arguments for creating an attested compute.
|
|
14
13
|
*/
|
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ATTESTED_COMPUTE_DOMAIN_NAME = void 0;
|
|
4
4
|
exports.attestedCompute = attestedCompute;
|
|
5
5
|
const protobuf_1 = require("@bufbuild/protobuf");
|
|
6
6
|
const viem_1 = require("viem");
|
|
7
7
|
const attested_decrypt_js_1 = require("../attesteddecrypt/attested-decrypt.js");
|
|
8
8
|
const binary_js_1 = require("../binary.js");
|
|
9
|
+
const eip712_js_1 = require("../eip712/eip712.js");
|
|
9
10
|
const kms_service_pb_js_1 = require("../generated/es/inco/kms/lite/v1/kms_service_pb.js");
|
|
10
|
-
const
|
|
11
|
+
const xwing_js_1 = require("../lite/xwing.js");
|
|
12
|
+
const eip712_js_2 = require("../reencryption/eip712.js");
|
|
11
13
|
const types_js_1 = require("./types.js");
|
|
12
14
|
exports.ATTESTED_COMPUTE_DOMAIN_NAME = 'IncoAttestedCompute';
|
|
13
|
-
exports.DEFAULT_ATTESTED_COMPUTE_DOMAIN_VERSION = '2';
|
|
14
15
|
async function attestedCompute({ executorAddress, lhsHandle, op, rhsPlaintext, backoffConfig, walletClient, kmsQuorumClient, chainId, reencryptPubKey, reencryptKeypair, }) {
|
|
15
16
|
try {
|
|
16
17
|
(0, attested_decrypt_js_1.validateHandle)(lhsHandle);
|
|
18
|
+
if (reencryptPubKey &&
|
|
19
|
+
reencryptKeypair &&
|
|
20
|
+
!(0, xwing_js_1.reencryptPublicKeysMatch)(reencryptPubKey, reencryptKeypair)) {
|
|
21
|
+
throw new types_js_1.AttestedComputeError('reencryptPubKey does not match reencryptKeypair public key');
|
|
22
|
+
}
|
|
17
23
|
const rhsPlaintextBig = typeof rhsPlaintext === 'boolean'
|
|
18
24
|
? rhsPlaintext
|
|
19
25
|
? 1n
|
|
20
26
|
: 0n
|
|
21
27
|
: BigInt(rhsPlaintext);
|
|
22
|
-
const eip712DomainVersion = await (0,
|
|
28
|
+
const eip712DomainVersion = await (0, eip712_js_1.fetchEip712DomainVersion)(executorAddress, walletClient);
|
|
23
29
|
// Create the EIP712 payload for the handles to decrypt
|
|
24
|
-
const eip712Payload = (0,
|
|
30
|
+
const eip712Payload = (0, eip712_js_2.createEIP712Payload)({
|
|
25
31
|
chainId: BigInt(chainId),
|
|
26
32
|
primaryType: 'AttestedComputeRequest',
|
|
27
33
|
primaryTypeFields: [
|
|
@@ -55,7 +61,9 @@ async function attestedCompute({ executorAddress, lhsHandle, op, rhsPlaintext, b
|
|
|
55
61
|
},
|
|
56
62
|
},
|
|
57
63
|
});
|
|
58
|
-
|
|
64
|
+
// Envelope signatures are verified against the on-chain authorized signer set
|
|
65
|
+
let decryptionAttestation = await kmsQuorumClient.attestedCompute(attestedComputeRequest, backoffConfig, reencryptKeypair, executorAddress, walletClient);
|
|
66
|
+
// Decrypt encrypted attestations and verify inner DecryptionAttestation signatures
|
|
59
67
|
if (reencryptPubKey && reencryptKeypair) {
|
|
60
68
|
const [decryptedAttestation] = await (0, attested_decrypt_js_1.decryptEncryptedAttestations)([decryptionAttestation], reencryptKeypair);
|
|
61
69
|
return decryptedAttestation;
|
|
@@ -69,4 +77,4 @@ async function attestedCompute({ executorAddress, lhsHandle, op, rhsPlaintext, b
|
|
|
69
77
|
throw new types_js_1.AttestedComputeError('Failed to perform attested compute', error);
|
|
70
78
|
}
|
|
71
79
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGNvbXB1dGUvYXR0ZXN0ZWQtY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEwSEEsMENBeUhDO0FBblBELGlEQUE0QztBQUU1QywrQkFBOEM7QUFDOUMsZ0ZBR2dEO0FBS2hELDRDQUEwRDtBQUUxRCxtREFBK0Q7QUFLL0QsMEZBRzREO0FBRTVELCtDQUErRTtBQUMvRSx5REFBZ0U7QUFFaEUseUNBQXFFO0FBRXhELFFBQUEsNEJBQTRCLEdBQUcscUJBQXFCLENBQUM7QUE4RjNELEtBQUssVUFBVSxlQUFlLENBQTZCLEVBQ2hFLGVBQWUsRUFDZixTQUFTLEVBQ1QsRUFBRSxFQUNGLFlBQVksRUFDWixhQUFhLEVBQ2IsWUFBWSxFQUNaLGVBQWUsRUFDZixPQUFPLEVBQ1AsZUFBZSxFQUNmLGdCQUFnQixHQVlqQjtJQUlDLElBQUksQ0FBQztRQUNILElBQUEsb0NBQWMsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUUxQixJQUNFLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsQ0FBQyxJQUFBLG1DQUF3QixFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxFQUM1RCxDQUFDO1lBQ0QsTUFBTSxJQUFJLCtCQUFvQixDQUM1Qiw0REFBNEQsQ0FDN0QsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FDbkIsT0FBTyxZQUFZLEtBQUssU0FBUztZQUMvQixDQUFDLENBQUMsWUFBWTtnQkFDWixDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUMsRUFBRTtZQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0IsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUEsb0NBQXdCLEVBQ3hELGVBQWUsRUFDZixZQUFZLENBQ2IsQ0FBQztRQUVGLHVEQUF1RDtRQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFBLCtC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
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import type { Account, Chain,
|
|
1
|
+
import type { Account, Chain, Transport, WalletClient } from 'viem';
|
|
2
2
|
import { type HexString } from '../binary.js';
|
|
3
3
|
import { type SupportedChainId } from '../chain.js';
|
|
4
4
|
import { EncryptionScheme, type SupportedFheType } from '../encryption/encryption.js';
|
|
5
|
+
import { type HandleWithProof } from '../generated/es/inco/kms/lite/v1/types_pb.js';
|
|
6
|
+
import { validateHandle } from '../handle.js';
|
|
5
7
|
import { KmsQuorumClient } from '../kms/quorumClient.js';
|
|
6
8
|
import type { XwingKeypair } from '../lite/xwing.js';
|
|
7
9
|
import type { BackoffConfig } from '../retry.js';
|
|
8
10
|
import { type DecryptionAttestation, type EncryptedDecryptionAttestation } from './types.js';
|
|
11
|
+
export { validateHandle };
|
|
9
12
|
export declare const ATTESTED_DECRYPT_DOMAIN_NAME = "IncoAttestedDecrypt";
|
|
10
|
-
export declare const DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION = "2";
|
|
11
|
-
export declare const TEST_RPC_URL = "UNUSED IN TEST";
|
|
12
13
|
/**
|
|
13
14
|
* Arguments for creating an attested decrypt request.
|
|
14
15
|
*/
|
|
@@ -20,21 +21,6 @@ export interface IncoLiteAttestedDecryptorArgs {
|
|
|
20
21
|
/** The chain ID to use */
|
|
21
22
|
chainId: SupportedChainId;
|
|
22
23
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Decrypt multiple handles in a single attested request without wallet authentication.
|
|
25
|
-
* Returns an array of attestations aligned with the response ordering.
|
|
26
|
-
*
|
|
27
|
-
* @param args - The arguments for creating the attested decrypt function
|
|
28
|
-
* @returns A function that can decrypt handles and return an attestation
|
|
29
|
-
* @throws {AttestedDecryptError} If the creation fails
|
|
30
|
-
*/
|
|
31
|
-
export declare function attestedDecrypt({ handles, backoffConfig, chainId, kmsQuorumClient, executorAddress, }: {
|
|
32
|
-
handles: HexString[];
|
|
33
|
-
backoffConfig?: Partial<BackoffConfig> | undefined;
|
|
34
|
-
chainId: SupportedChainId;
|
|
35
|
-
kmsQuorumClient: KmsQuorumClient;
|
|
36
|
-
executorAddress: HexString;
|
|
37
|
-
}): Promise<Array<DecryptionAttestation<EncryptionScheme, SupportedFheType>>>;
|
|
38
24
|
/**
|
|
39
25
|
* Decrypt multiple handles in a single attested request.
|
|
40
26
|
* Returns an array of attestations aligned with the response ordering.
|
|
@@ -71,29 +57,5 @@ export declare function attestedDecrypt({ handles, backoffConfig, walletClient,
|
|
|
71
57
|
kmsQuorumClient: KmsQuorumClient;
|
|
72
58
|
executorAddress: HexString;
|
|
73
59
|
}): Promise<Array<EncryptedDecryptionAttestation<EncryptionScheme, SupportedFheType>>>;
|
|
74
|
-
|
|
75
|
-
* Decrypt multiple handles in a single attested request.
|
|
76
|
-
* Returns an array of attestations aligned with the response ordering.
|
|
77
|
-
*
|
|
78
|
-
* @param args - The arguments for creating the attested decrypt function
|
|
79
|
-
* @returns A function that can decrypt handles and return an attestation
|
|
80
|
-
* @throws {AttestedDecryptError} If the creation fails
|
|
81
|
-
*/
|
|
82
|
-
export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, kmsQuorumClient, executorAddress, }: {
|
|
83
|
-
handles: HexString[];
|
|
84
|
-
backoffConfig?: Partial<BackoffConfig> | undefined;
|
|
85
|
-
walletClient: WalletClient<Transport, Chain, Account>;
|
|
86
|
-
chainId: SupportedChainId;
|
|
87
|
-
reencryptPubKey?: never;
|
|
88
|
-
reencryptKeypair?: never;
|
|
89
|
-
kmsQuorumClient: KmsQuorumClient;
|
|
90
|
-
executorAddress: HexString;
|
|
91
|
-
}): Promise<Array<DecryptionAttestation<EncryptionScheme, SupportedFheType>>>;
|
|
92
|
-
export declare function fetchEip712DomainVersion(executorAddress: HexString | undefined, defaultVersion: string, walletClient?: WalletClient<Transport, Chain, Account> | PublicClient<Transport, Chain>): Promise<string>;
|
|
60
|
+
export declare function buildHandlesWithProofs(handles: HexString[]): Array<HandleWithProof>;
|
|
93
61
|
export declare function decryptEncryptedAttestations(attestations: Array<DecryptionAttestation<EncryptionScheme, SupportedFheType> | EncryptedDecryptionAttestation<EncryptionScheme, SupportedFheType>>, reencryptKeypair: XwingKeypair): Promise<Array<DecryptionAttestation<EncryptionScheme, SupportedFheType>>>;
|
|
94
|
-
/**
|
|
95
|
-
* Validates a handle format.
|
|
96
|
-
* @param handle - The handle to validate
|
|
97
|
-
* @throws {AttestedDecryptError} If the handle format is invalid
|
|
98
|
-
*/
|
|
99
|
-
export declare function validateHandle(handle: HexString): void;
|
|
@@ -1,27 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ATTESTED_DECRYPT_DOMAIN_NAME = exports.validateHandle = void 0;
|
|
4
4
|
exports.attestedDecrypt = attestedDecrypt;
|
|
5
|
-
exports.
|
|
5
|
+
exports.buildHandlesWithProofs = buildHandlesWithProofs;
|
|
6
6
|
exports.decryptEncryptedAttestations = decryptEncryptedAttestations;
|
|
7
|
-
exports.validateHandle = validateHandle;
|
|
8
7
|
const protobuf_1 = require("@bufbuild/protobuf");
|
|
9
8
|
const viem_1 = require("viem");
|
|
10
9
|
const binary_js_1 = require("../binary.js");
|
|
10
|
+
const eip712_js_1 = require("../eip712/eip712.js");
|
|
11
11
|
const encryption_js_1 = require("../encryption/encryption.js");
|
|
12
|
-
const lightning_js_1 = require("../generated/abis/lightning.js");
|
|
13
|
-
const verifier_js_1 = require("../generated/abis/verifier.js");
|
|
14
12
|
const kms_service_pb_js_1 = require("../generated/es/inco/kms/lite/v1/kms_service_pb.js");
|
|
15
13
|
const types_pb_js_1 = require("../generated/es/inco/kms/lite/v1/types_pb.js");
|
|
16
14
|
const handle_js_1 = require("../handle.js");
|
|
15
|
+
Object.defineProperty(exports, "validateHandle", { enumerable: true, get: function () { return handle_js_1.validateHandle; } });
|
|
17
16
|
const xwing_js_1 = require("../lite/xwing.js");
|
|
18
|
-
const eip712_js_1 = require("../reencryption/eip712.js");
|
|
19
17
|
const types_js_1 = require("./types.js");
|
|
20
18
|
exports.ATTESTED_DECRYPT_DOMAIN_NAME = 'IncoAttestedDecrypt';
|
|
21
|
-
// 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)
|
|
22
|
-
exports.DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION = '2';
|
|
23
|
-
// This magic RPC url is used in tests to detect a mock client (which cannot make real on-chain calls)
|
|
24
|
-
exports.TEST_RPC_URL = 'UNUSED IN TEST';
|
|
25
19
|
/**
|
|
26
20
|
* Decrypt multiple handles in a single attested request.
|
|
27
21
|
* Returns an array of attestations aligned with the response ordering.
|
|
@@ -32,37 +26,37 @@ exports.TEST_RPC_URL = 'UNUSED IN TEST';
|
|
|
32
26
|
*/
|
|
33
27
|
async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, executorAddress, }) {
|
|
34
28
|
try {
|
|
35
|
-
handles.forEach(validateHandle);
|
|
36
|
-
|
|
29
|
+
handles.forEach(handle_js_1.validateHandle);
|
|
30
|
+
if (!reencryptPubKey) {
|
|
31
|
+
throw new types_js_1.AttestedDecryptError('Reencrypt public key is required');
|
|
32
|
+
}
|
|
33
|
+
if (reencryptKeypair &&
|
|
34
|
+
!(0, xwing_js_1.reencryptPublicKeysMatch)(reencryptPubKey, reencryptKeypair)) {
|
|
35
|
+
throw new types_js_1.AttestedDecryptError('reencryptPubKey does not match reencryptKeypair public key');
|
|
36
|
+
}
|
|
37
|
+
const eip712Payload = await (0, eip712_js_1.buildEip712Payload)({
|
|
37
38
|
executorAddress,
|
|
38
|
-
|
|
39
|
+
ethClient: walletClient,
|
|
39
40
|
chainId,
|
|
40
41
|
handles,
|
|
41
|
-
|
|
42
|
+
reencryptPubKey,
|
|
42
43
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
const attestedRevealRequest = (0, protobuf_1.create)(kms_service_pb_js_1.AttestedRevealRequestSchema, {
|
|
63
|
-
handles: handles,
|
|
64
|
-
});
|
|
65
|
-
response = await kmsQuorumClient.attestedReveal(attestedRevealRequest, backoffConfig);
|
|
44
|
+
const eip712SignatureHex = await (0, eip712_js_1.signEip712)(walletClient, eip712Payload);
|
|
45
|
+
const handlesWithProofs = buildHandlesWithProofs(handles);
|
|
46
|
+
const attestedDecryptRequest = buildAttestedDecryptRequest({
|
|
47
|
+
userAddress: walletClient.account.address,
|
|
48
|
+
handlesWithProofs,
|
|
49
|
+
eip712Signature: (0, viem_1.hexToBytes)(eip712SignatureHex),
|
|
50
|
+
reencryptPubKey,
|
|
51
|
+
});
|
|
52
|
+
// Call quorum client which returns aggregated attestations directly
|
|
53
|
+
// The quorum client handles retry logic internally for each KMS client
|
|
54
|
+
// Envelope signatures are verified against the on-chain authorized signer set
|
|
55
|
+
const response = await kmsQuorumClient.attestedDecrypt(attestedDecryptRequest, backoffConfig, reencryptKeypair, executorAddress, walletClient);
|
|
56
|
+
// If reencryptPubKey is provided with a keypair, decrypt the encrypted attestations
|
|
57
|
+
// and verify the inner DecryptionAttestation signatures
|
|
58
|
+
if (reencryptPubKey !== undefined && reencryptKeypair) {
|
|
59
|
+
return decryptEncryptedAttestations(response, reencryptKeypair);
|
|
66
60
|
}
|
|
67
61
|
return response;
|
|
68
62
|
}
|
|
@@ -73,51 +67,6 @@ async function attestedDecrypt({ handles, backoffConfig, walletClient, chainId,
|
|
|
73
67
|
throw new types_js_1.AttestedDecryptError('Failed to decrypt handles', error);
|
|
74
68
|
}
|
|
75
69
|
}
|
|
76
|
-
// Fetches EIP712 domain version from on-chain verifier if walletClient is provided
|
|
77
|
-
async function fetchEip712DomainVersion(executorAddress, defaultVersion, walletClient) {
|
|
78
|
-
let eip712DomainVersion;
|
|
79
|
-
if (walletClient &&
|
|
80
|
-
executorAddress &&
|
|
81
|
-
walletClient.transport.url !== exports.TEST_RPC_URL) {
|
|
82
|
-
const lightning = (0, viem_1.getContract)({
|
|
83
|
-
address: executorAddress,
|
|
84
|
-
abi: lightning_js_1.incoLightningAbi,
|
|
85
|
-
client: walletClient,
|
|
86
|
-
});
|
|
87
|
-
const incoVerifierAddress = await lightning.read.incoVerifier();
|
|
88
|
-
const verifier = (0, viem_1.getContract)({
|
|
89
|
-
address: incoVerifierAddress,
|
|
90
|
-
abi: verifier_js_1.incoVerifierAbi,
|
|
91
|
-
client: walletClient,
|
|
92
|
-
});
|
|
93
|
-
eip712DomainVersion = await verifier.read.getEIP712Version();
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
eip712DomainVersion = defaultVersion;
|
|
97
|
-
}
|
|
98
|
-
return eip712DomainVersion;
|
|
99
|
-
}
|
|
100
|
-
// Small helpers to make the main flow readable
|
|
101
|
-
async function buildEip712Payload(params) {
|
|
102
|
-
const eip712DomainVersion = await fetchEip712DomainVersion(params.executorAddress, exports.DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION, params.walletClient);
|
|
103
|
-
return (0, eip712_js_1.createEIP712Payload)({
|
|
104
|
-
chainId: BigInt(params.chainId),
|
|
105
|
-
primaryType: 'AttestedDecryptRequest',
|
|
106
|
-
primaryTypeFields: [
|
|
107
|
-
{ name: 'handles', type: 'bytes32[]' },
|
|
108
|
-
{ name: 'publicKey', type: 'bytes' },
|
|
109
|
-
],
|
|
110
|
-
message: {
|
|
111
|
-
handles: params.handles,
|
|
112
|
-
publicKey: (0, viem_1.bytesToHex)(params.reencryptPubKey ? params.reencryptPubKey : new Uint8Array()),
|
|
113
|
-
},
|
|
114
|
-
domainName: exports.ATTESTED_DECRYPT_DOMAIN_NAME,
|
|
115
|
-
domainVersion: eip712DomainVersion,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
async function signEip712(walletClient, eip712Payload) {
|
|
119
|
-
return await walletClient.signTypedData(eip712Payload);
|
|
120
|
-
}
|
|
121
70
|
function buildHandlesWithProofs(handles) {
|
|
122
71
|
return handles.map((handle) => {
|
|
123
72
|
return (0, protobuf_1.create)(types_pb_js_1.HandleWithProofSchema, {
|
|
@@ -136,9 +85,7 @@ function buildAttestedDecryptRequest(params) {
|
|
|
136
85
|
userAddress: params.userAddress,
|
|
137
86
|
handlesWithProofs: params.handlesWithProofs,
|
|
138
87
|
eip712Signature: params.eip712Signature,
|
|
139
|
-
reencryptPubKey: params.reencryptPubKey
|
|
140
|
-
? params.reencryptPubKey
|
|
141
|
-
: new Uint8Array(),
|
|
88
|
+
reencryptPubKey: params.reencryptPubKey ?? new Uint8Array(),
|
|
142
89
|
});
|
|
143
90
|
}
|
|
144
91
|
async function decryptEncryptedAttestations(attestations, reencryptKeypair) {
|
|
@@ -168,14 +115,4 @@ async function decryptEncryptedAttestations(attestations, reencryptKeypair) {
|
|
|
168
115
|
throw new types_js_1.AttestedDecryptError('Attestation is neither plaintext nor encrypted');
|
|
169
116
|
}));
|
|
170
117
|
}
|
|
171
|
-
|
|
172
|
-
* Validates a handle format.
|
|
173
|
-
* @param handle - The handle to validate
|
|
174
|
-
* @throws {AttestedDecryptError} If the handle format is invalid
|
|
175
|
-
*/
|
|
176
|
-
function validateHandle(handle) {
|
|
177
|
-
if (!handle.startsWith('0x') || handle.length !== 2 + 2 * 32) {
|
|
178
|
-
throw new types_js_1.AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpTEEsMENBc0ZDO0FBR0QsNERBZ0NDO0FBMkVELG9FQWtEQztBQU9ELHdDQU1DO0FBcGJELGlEQUE0QztBQVE1QywrQkFBMkQ7QUFDM0QsNENBQTZEO0FBRTdELCtEQUtxQztBQUNyQyxpRUFBa0U7QUFDbEUsK0RBQWdFO0FBQ2hFLDBGQUs0RDtBQUM1RCw4RUFHc0Q7QUFDdEQsNENBQTZDO0FBRzdDLCtDQUEyQztBQUMzQyx5REFBZ0U7QUFFaEUseUNBSW9CO0FBRVAsUUFBQSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQztBQUNsRSxxS0FBcUs7QUFDeEosUUFBQSx1Q0FBdUMsR0FBRyxHQUFHLENBQUM7QUFFM0Qsc0dBQXNHO0FBQ3pGLFFBQUEsWUFBWSxHQUFHLGdCQUFnQixDQUFDO0FBMkg3Qzs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLGVBQWUsQ0FBQyxFQUNwQyxPQUFPLEVBQ1AsYUFBYSxFQUNiLFlBQVksRUFDWixPQUFPLEVBQ1AsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsZUFBZSxHQVVoQjtJQU1DLElBQUksQ0FBQztRQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFaEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQztZQUM3QyxlQUFlO1lBQ2YsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM5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
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpSEEsMENBbUZDO0FBRUQsd0RBY0M7QUFnQkQsb0VBa0RDO0FBdFJELGlEQUE0QztBQUU1QywrQkFBa0M7QUFDbEMsNENBQTZEO0FBRTdELG1EQUFxRTtBQUNyRSwrREFLcUM7QUFDckMsMEZBRzREO0FBQzVELDhFQUdzRDtBQUN0RCw0Q0FBNkQ7QUFVcEQsK0ZBVmUsMEJBQWMsT0FVZjtBQVB2QiwrQ0FBcUU7QUFFckUseUNBSW9CO0FBR1AsUUFBQSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQztBQXlFbEU7Ozs7Ozs7R0FPRztBQUNJLEtBQUssVUFBVSxlQUFlLENBQUMsRUFDcEMsT0FBTyxFQUNQLGFBQWEsRUFDYixZQUFZLEVBQ1osT0FBTyxFQUNQLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGVBQWUsR0FVaEI7SUFNQyxJQUFJLENBQUM7UUFDSCxPQUFPLENBQUMsT0FBTyxDQUFDLDBCQUFjLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLCtCQUFvQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELElBQ0UsZ0JBQWdCO1lBQ2hCLENBQUMsSUFBQSxtQ0FBd0IsRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsRUFDNUQsQ0FBQztZQUNELE1BQU0sSUFBSSwrQkFBb0IsQ0FDNUIsNERBQTRELENBQzdELENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFBLDhCQUFrQixFQUFDO1lBQzdDLGVBQWU7WUFDZixTQUFTLEVBQUUsWUFBWTtZQUN2QixPQUFPO1lBQ1AsT0FBTztZQUNQLGVBQWU7U0FDaEIsQ0FBQyxDQUFD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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Chain, PublicClient, Transport } from 'viem';
|
|
2
|
+
import type { DecryptionAttestation } from '../attesteddecrypt/types.js';
|
|
3
|
+
import type { HexString } from '../binary.js';
|
|
4
|
+
import type { EncryptionScheme, SupportedFheType } from '../encryption/encryption.js';
|
|
5
|
+
import type { KmsQuorumClient } from '../kms/quorumClient.js';
|
|
6
|
+
import type { BackoffConfig } from '../retry.js';
|
|
7
|
+
/**
|
|
8
|
+
* Reveal multiple handles in a single attested request without wallet authentication.
|
|
9
|
+
* Returns an array of plaintext attestations aligned with the response ordering.
|
|
10
|
+
*
|
|
11
|
+
* @param args - The arguments for the attested reveal request
|
|
12
|
+
* @returns An array of decryption attestations
|
|
13
|
+
* @throws {AttestedRevealError} If the reveal fails
|
|
14
|
+
*/
|
|
15
|
+
export declare function attestedReveal({ handles, kmsQuorumClient, executorAddress, publicClient, backoffConfig, }: {
|
|
16
|
+
handles: HexString[];
|
|
17
|
+
kmsQuorumClient: KmsQuorumClient;
|
|
18
|
+
executorAddress: HexString;
|
|
19
|
+
publicClient: PublicClient<Transport, Chain>;
|
|
20
|
+
backoffConfig?: Partial<BackoffConfig> | undefined;
|
|
21
|
+
}): Promise<Array<DecryptionAttestation<EncryptionScheme, SupportedFheType>>>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.attestedReveal = attestedReveal;
|
|
4
|
+
const protobuf_1 = require("@bufbuild/protobuf");
|
|
5
|
+
const kms_service_pb_js_1 = require("../generated/es/inco/kms/lite/v1/kms_service_pb.js");
|
|
6
|
+
const handle_js_1 = require("../handle.js");
|
|
7
|
+
const types_js_1 = require("./types.js");
|
|
8
|
+
/**
|
|
9
|
+
* Reveal multiple handles in a single attested request without wallet authentication.
|
|
10
|
+
* Returns an array of plaintext attestations aligned with the response ordering.
|
|
11
|
+
*
|
|
12
|
+
* @param args - The arguments for the attested reveal request
|
|
13
|
+
* @returns An array of decryption attestations
|
|
14
|
+
* @throws {AttestedRevealError} If the reveal fails
|
|
15
|
+
*/
|
|
16
|
+
async function attestedReveal({ handles, kmsQuorumClient, executorAddress, publicClient, backoffConfig, }) {
|
|
17
|
+
try {
|
|
18
|
+
handles.forEach(handle_js_1.validateHandle);
|
|
19
|
+
const attestedRevealRequest = (0, protobuf_1.create)(kms_service_pb_js_1.AttestedRevealRequestSchema, {
|
|
20
|
+
handles,
|
|
21
|
+
});
|
|
22
|
+
return (await kmsQuorumClient.attestedReveal(attestedRevealRequest, backoffConfig, executorAddress, publicClient));
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (error instanceof types_js_1.AttestedRevealError) {
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
throw new types_js_1.AttestedRevealError('Failed to reveal handles', error);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtcmV2ZWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F0dGVzdGVkcmV2ZWFsL2F0dGVzdGVkLXJldmVhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNCQSx3Q0FnQ0M7QUF0REQsaURBQTRDO0FBUTVDLDBGQUFpRztBQUNqRyw0Q0FBOEM7QUFHOUMseUNBQWlEO0FBRWpEOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUFDLEVBQ25DLE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDWixhQUFhLEdBT2Q7SUFDQyxJQUFJLENBQUM7UUFDSCxPQUFPLENBQUMsT0FBTyxDQUFDLDBCQUFjLENBQUMsQ0FBQztRQUVoQyxNQUFNLHFCQUFxQixHQUFHLElBQUEsaUJBQU0sRUFBQywrQ0FBMkIsRUFBRTtZQUNoRSxPQUFPO1NBQ1IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLE1BQU0sZUFBZSxDQUFDLGNBQWMsQ0FDMUMscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixlQUEwQixFQUMxQixZQUFZLENBQ2IsQ0FBcUUsQ0FBQztJQUN6RSxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLDhCQUFtQixFQUFFLENBQUM7WUFDekMsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxJQUFJLDhCQUFtQixDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.attestedReveal = void 0;
|
|
18
|
+
var attested_reveal_js_1 = require("./attested-reveal.js");
|
|
19
|
+
Object.defineProperty(exports, "attestedReveal", { enumerable: true, get: function () { return attested_reveal_js_1.attestedReveal; } });
|
|
20
|
+
__exportStar(require("./types.js"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRyZXZlYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyREFBc0Q7QUFBN0Msb0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLDZDQUEyQiJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AttestedRevealError = void 0;
|
|
4
|
+
class AttestedRevealError extends Error {
|
|
5
|
+
cause;
|
|
6
|
+
constructor(message, cause) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.cause = cause;
|
|
9
|
+
this.name = 'AttestedRevealError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.AttestedRevealError = AttestedRevealError;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRyZXZlYWwvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxtQkFBb0IsU0FBUSxLQUFLO0lBRzFCO0lBRmxCLFlBQ0UsT0FBZSxFQUNDLEtBQWU7UUFFL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRkMsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUcvQixJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQVJELGtEQVFDIn0=
|