@inco/js 0.9.0-devnet-test-4 → 0.10.0-devnet-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
@@ -0,0 +1,22 @@
|
|
|
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.eListAttestedReveal = exports.eListAttestedDecrypt = void 0;
|
|
18
|
+
var elist_attested_decrypt_js_1 = require("./elist-attested-decrypt.js");
|
|
19
|
+
Object.defineProperty(exports, "eListAttestedDecrypt", { enumerable: true, get: function () { return elist_attested_decrypt_js_1.eListAttestedDecrypt; } });
|
|
20
|
+
Object.defineProperty(exports, "eListAttestedReveal", { enumerable: true, get: function () { return elist_attested_decrypt_js_1.eListAttestedReveal; } });
|
|
21
|
+
__exportStar(require("./types.js"), exports);
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxpc3RhdHRlc3RlZGRlY3J5cHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5RUFHcUM7QUFGbkMsaUlBQUEsb0JBQW9CLE9BQUE7QUFDcEIsZ0lBQUEsbUJBQW1CLE9BQUE7QUFFckIsNkNBQTJCIn0=
|
|
@@ -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,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EListAttestedDecryptError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Custom error class for elist attested decrypt operations.
|
|
6
|
+
*/
|
|
7
|
+
class EListAttestedDecryptError extends Error {
|
|
8
|
+
cause;
|
|
9
|
+
constructor(message, cause) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.cause = cause;
|
|
12
|
+
this.name = 'EListAttestedDecryptError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.EListAttestedDecryptError = EListAttestedDecryptError;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxpc3RhdHRlc3RlZGRlY3J5cHQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUE7O0dBRUc7QUFDSCxNQUFhLHlCQUEwQixTQUFRLEtBQUs7SUFHaEM7SUFGbEIsWUFDRSxPQUFlLEVBQ0MsS0FBZTtRQUUvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGQyxVQUFLLEdBQUwsS0FBSyxDQUFVO1FBRy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBUkQsOERBUUMifQ==
|
|
@@ -1,37 +1,79 @@
|
|
|
1
1
|
import { Schema } from 'effect';
|
|
2
2
|
import { ByteArray, Hex } from 'viem';
|
|
3
3
|
import { Bytes32 } from '../binary.js';
|
|
4
|
+
/**
|
|
5
|
+
* A function that encrypts a plaintext value, embedding its {@link InputContext} into the resulting ciphertext.
|
|
6
|
+
*
|
|
7
|
+
* @typeParam S - The encryption scheme (e.g. X-Wing).
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const result = await encrypt({ plaintext: { scheme: 2, type: 5, value: 42n }, context });
|
|
11
|
+
* // result.handle, result.ciphertext, result.prehandle
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
4
14
|
export type Encryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(plaintext: PlaintextWithContextOf<S, T>) => Promise<EncryptResultOf<S, T>>;
|
|
15
|
+
/**
|
|
16
|
+
* A function that decrypts a ciphertext back to its plaintext value.
|
|
17
|
+
*
|
|
18
|
+
* @typeParam S - The encryption scheme (e.g. X-Wing).
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const plaintext = await decrypt({ scheme: 2, type: 5, value: '0x...' });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
5
24
|
export type Decryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(ciphertext: CiphertextOf<S, T>) => Promise<PlaintextOf<S, T>>;
|
|
25
|
+
/**
|
|
26
|
+
* Subset of ENCRYPTION types currently supported for encryption/decryption.
|
|
27
|
+
*
|
|
28
|
+
* @remarks TODO: review need of `euint64` and `euint160` — `Lib.sol` only supports `euint256` and `ebool`.
|
|
29
|
+
*/
|
|
6
30
|
export declare const supportedFheTypes: {
|
|
7
31
|
readonly euint64: 5;
|
|
8
32
|
readonly euint160: 7;
|
|
9
33
|
readonly euint256: 8;
|
|
10
34
|
readonly ebool: 0;
|
|
11
35
|
};
|
|
36
|
+
/** Schema that validates a string is one of the supported ENCRYPTION type names. */
|
|
12
37
|
export declare const SupportedFheTypeName: Schema.SchemaClass<"ebool" | "euint64" | "euint160" | "euint256", "ebool" | "euint64" | "euint160" | "euint256", never>;
|
|
38
|
+
/** A supported ENCRYPTION type name (e.g. `"euint256"`, `"ebool"`). */
|
|
13
39
|
export type SupportedFheTypeName = typeof SupportedFheTypeName.Type;
|
|
40
|
+
/** Schema that validates a number is one of the supported ENCRYPTION type integer identifiers. */
|
|
14
41
|
export declare const SupportedFheType: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
|
|
42
|
+
/** Integer identifier of a supported ENCRYPTION type (a subset of all ENCRYPTION types). */
|
|
15
43
|
export type SupportedFheType = typeof SupportedFheType.Type;
|
|
44
|
+
/** Map of encryption scheme names to their integer identifiers. Currently only X-Wing (2) is supported. */
|
|
16
45
|
export declare const encryptionSchemes: {
|
|
17
46
|
readonly xwing: 2;
|
|
18
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* Returns the human-readable name of an encryption scheme.
|
|
50
|
+
* @param scheme - The encryption scheme integer identifier.
|
|
51
|
+
* @returns The scheme name (e.g. `"X-Wing"`).
|
|
52
|
+
* @throws If the scheme identifier is unknown.
|
|
53
|
+
*/
|
|
19
54
|
export declare function getEncryptionSchemeName(scheme: number): string;
|
|
55
|
+
/** The typeof {@link encryptionSchemes} — mapping from scheme names to integer IDs. */
|
|
20
56
|
export type EncryptionSchemes = typeof encryptionSchemes;
|
|
57
|
+
/** The integer identifier for the X-Wing encryption scheme (`2`). */
|
|
21
58
|
export type XwingScheme = EncryptionSchemes['xwing'];
|
|
59
|
+
/** Schema that validates a value is a known encryption scheme identifier. */
|
|
22
60
|
export declare const EncryptionScheme: Schema.Literal<[2]>;
|
|
61
|
+
/** An encryption scheme identifier (currently only X-Wing = `2`). */
|
|
23
62
|
export type EncryptionScheme = typeof EncryptionScheme.Type;
|
|
24
63
|
type DistType<P, S extends EncryptionScheme, T extends SupportedFheType> = P extends any ? P & {
|
|
25
64
|
scheme: S;
|
|
26
65
|
type: T;
|
|
27
66
|
} : never;
|
|
67
|
+
/** Schema for an ENCRYPTION ciphertext: encryption scheme, ENCRYPTION type, and the encrypted value as a hex string. */
|
|
28
68
|
export declare const Ciphertext: Schema.Struct<{
|
|
29
69
|
scheme: Schema.Literal<[2]>;
|
|
30
70
|
type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
|
|
31
71
|
value: Schema.TemplateLiteral<`0x${string}`>;
|
|
32
72
|
}>;
|
|
73
|
+
/** An ENCRYPTION ciphertext containing the encryption scheme, ENCRYPTION type, and encrypted hex value. */
|
|
33
74
|
export type Ciphertext = typeof Ciphertext.Type;
|
|
34
75
|
export type CiphertextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Ciphertext, S, T>;
|
|
76
|
+
/** Schema for a ciphertext paired with the {@link InputContext} it was encrypted under. */
|
|
35
77
|
export declare const CiphertextWithContext: Schema.Struct<{
|
|
36
78
|
ciphertext: Schema.Struct<{
|
|
37
79
|
scheme: Schema.Literal<[2]>;
|
|
@@ -46,10 +88,12 @@ export declare const CiphertextWithContext: Schema.Struct<{
|
|
|
46
88
|
version: typeof Schema.Number;
|
|
47
89
|
}>;
|
|
48
90
|
}>;
|
|
91
|
+
/** A ciphertext paired with the {@link InputContext} it was encrypted under. */
|
|
49
92
|
export type CiphertextWithContext = typeof CiphertextWithContext.Type;
|
|
50
93
|
export type CiphertextWithContextOf<S extends EncryptionScheme, T extends SupportedFheType> = CiphertextWithContext & {
|
|
51
94
|
ciphertext: CiphertextOf<S, T>;
|
|
52
95
|
};
|
|
96
|
+
/** Schema for the result of an encryption operation: ciphertext, input context, prehandle, and final handle. */
|
|
53
97
|
export declare const EncryptResult: Schema.Struct<{
|
|
54
98
|
ciphertext: Schema.Struct<{
|
|
55
99
|
scheme: Schema.Literal<[2]>;
|
|
@@ -66,10 +110,16 @@ export declare const EncryptResult: Schema.Struct<{
|
|
|
66
110
|
prehandle: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
|
|
67
111
|
handle: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
|
|
68
112
|
}>;
|
|
113
|
+
/** The result of an encryption operation, containing the ciphertext, context, prehandle, and deterministic handle. */
|
|
69
114
|
export type EncryptResult = typeof EncryptResult.Type;
|
|
70
115
|
export type EncryptResultOf<S extends EncryptionScheme, T extends SupportedFheType> = EncryptResult & {
|
|
71
116
|
ciphertext: CiphertextOf<S, T>;
|
|
72
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* Schema for an ENCRYPTION plaintext value. The `value` field type depends on the ENCRYPTION type:
|
|
120
|
+
* - `euint64` / `euint160` / `euint256`: `bigint`
|
|
121
|
+
* - `ebool`: `boolean`
|
|
122
|
+
*/
|
|
73
123
|
export declare const Plaintext: Schema.Union<[Schema.Struct<{
|
|
74
124
|
scheme: Schema.Literal<[2]>;
|
|
75
125
|
type: Schema.Literal<[5, 7, 8]>;
|
|
@@ -79,8 +129,10 @@ export declare const Plaintext: Schema.Union<[Schema.Struct<{
|
|
|
79
129
|
type: Schema.Literal<[0]>;
|
|
80
130
|
value: typeof Schema.Boolean;
|
|
81
131
|
}>]>;
|
|
132
|
+
/** An ENCRYPTION plaintext value — `bigint` for integer types, `boolean` for `ebool`. */
|
|
82
133
|
export type Plaintext = typeof Plaintext.Type;
|
|
83
134
|
export type PlaintextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Plaintext, S, T>;
|
|
135
|
+
/** Schema for a plaintext paired with the {@link InputContext} it will be encrypted under. */
|
|
84
136
|
export declare const PlaintextWithContext: Schema.Struct<{
|
|
85
137
|
plaintext: Schema.Union<[Schema.Struct<{
|
|
86
138
|
scheme: Schema.Literal<[2]>;
|
|
@@ -99,20 +151,83 @@ export declare const PlaintextWithContext: Schema.Struct<{
|
|
|
99
151
|
version: typeof Schema.Number;
|
|
100
152
|
}>;
|
|
101
153
|
}>;
|
|
154
|
+
/** A plaintext paired with the {@link InputContext} it will be encrypted under. */
|
|
102
155
|
export type PlaintextWithContext = typeof PlaintextWithContext.Type;
|
|
103
156
|
export type PlaintextWithContextOf<S extends EncryptionScheme, T extends SupportedFheType> = PlaintextWithContext & {
|
|
104
157
|
plaintext: PlaintextOf<S, T>;
|
|
105
158
|
};
|
|
159
|
+
/**
|
|
160
|
+
* Converts a `bigint` to a typed {@link Plaintext} value.
|
|
161
|
+
*
|
|
162
|
+
* For integer ENCRYPTION types (`euint64`, `euint160`, `euint256`) the value is passed through as-is.
|
|
163
|
+
* For `ebool`, non-zero values become `true`.
|
|
164
|
+
*
|
|
165
|
+
* @param scheme - The encryption scheme identifier.
|
|
166
|
+
* @param type - The ENCRYPTION type to interpret the value as.
|
|
167
|
+
* @param bigPt - The raw bigint plaintext value.
|
|
168
|
+
* @returns A typed `Plaintext` matching the given scheme and ENCRYPTION type.
|
|
169
|
+
* @throws If `type` is not a supported ENCRYPTION type.
|
|
170
|
+
*/
|
|
106
171
|
export declare function bigintToPlaintext<S extends EncryptionScheme, T extends SupportedFheType>(scheme: S, type: T, bigPt: bigint): PlaintextOf<S, T>;
|
|
172
|
+
/**
|
|
173
|
+
* Decodes an ABI-encoded ciphertext input into its components.
|
|
174
|
+
*
|
|
175
|
+
* The input format is: `4-byte version || abi.encode(bytes32 handle, bytes ciphertext)`.
|
|
176
|
+
*
|
|
177
|
+
* @param input - The raw encoded input as a byte array or hex string.
|
|
178
|
+
* @returns The decoded version, handle, and ciphertext.
|
|
179
|
+
*/
|
|
107
180
|
export declare function decodeCiphertextInput(input: ByteArray | Hex): {
|
|
108
181
|
version: number;
|
|
109
182
|
handle: Hex;
|
|
110
183
|
ciphertext: Hex;
|
|
111
184
|
};
|
|
185
|
+
/**
|
|
186
|
+
* Encodes a handle and ciphertext into the on-chain input format.
|
|
187
|
+
*
|
|
188
|
+
* The output format is: `4-byte version || abi.encode(bytes32 handle, bytes ciphertext)`.
|
|
189
|
+
*
|
|
190
|
+
* @param version - The encoding version (int32).
|
|
191
|
+
* @param handle - The 32-byte handle as a hex string.
|
|
192
|
+
* @param ciphertext - The ciphertext as a hex string.
|
|
193
|
+
* @returns The ABI-encoded input as a hex string.
|
|
194
|
+
*/
|
|
112
195
|
export declare function encodeCiphertextInput(version: number, handle: Hex, ciphertext: Hex): Hex;
|
|
196
|
+
/**
|
|
197
|
+
* Converts a {@link Plaintext} to its `bigint` representation.
|
|
198
|
+
*
|
|
199
|
+
* Integer types pass through directly; `ebool` maps `true` → `1n`, `false` → `0n`.
|
|
200
|
+
*
|
|
201
|
+
* @param plaintext - The plaintext to convert.
|
|
202
|
+
* @returns The bigint representation of the plaintext value.
|
|
203
|
+
*/
|
|
113
204
|
export declare function plaintextToBigint(plaintext: Plaintext): bigint;
|
|
205
|
+
/**
|
|
206
|
+
* Converts a {@link Plaintext} to a {@link Bytes32} hex string.
|
|
207
|
+
* @param plaintext - The plaintext to convert.
|
|
208
|
+
* @returns A 32-byte hex representation of the plaintext value.
|
|
209
|
+
*/
|
|
114
210
|
export declare function plaintextToBytes32(plaintext: Plaintext): Bytes32;
|
|
211
|
+
/**
|
|
212
|
+
* Converts a {@link Plaintext} to a 32-byte `Buffer`.
|
|
213
|
+
* @param plaintext - The plaintext to convert.
|
|
214
|
+
* @returns A 32-byte big-endian buffer of the plaintext value.
|
|
215
|
+
*/
|
|
115
216
|
export declare function plaintextToBytes(plaintext: Plaintext): Buffer;
|
|
217
|
+
/**
|
|
218
|
+
* Parses a {@link Bytes32} hex string into a typed {@link Plaintext}.
|
|
219
|
+
* @param plaintext - The 32-byte hex value to interpret.
|
|
220
|
+
* @param scheme - The encryption scheme identifier.
|
|
221
|
+
* @param type - The ENCRYPTION type to interpret the bytes as.
|
|
222
|
+
* @returns A typed `Plaintext` value.
|
|
223
|
+
*/
|
|
116
224
|
export declare function bytes32ToPlaintext(plaintext: Bytes32, scheme: EncryptionScheme, type: SupportedFheType): Plaintext;
|
|
225
|
+
/**
|
|
226
|
+
* Parses a `Uint8Array` into a typed {@link Plaintext}.
|
|
227
|
+
* @param plaintext - The byte array to interpret.
|
|
228
|
+
* @param scheme - The encryption scheme identifier.
|
|
229
|
+
* @param type - The ENCRYPTION type to interpret the bytes as.
|
|
230
|
+
* @returns A typed `Plaintext` value.
|
|
231
|
+
*/
|
|
117
232
|
export declare function bytesToPlaintext(plaintext: Uint8Array, scheme: EncryptionScheme, type: SupportedFheType): Plaintext;
|
|
118
233
|
export {};
|
|
@@ -14,7 +14,11 @@ const effect_1 = require("effect");
|
|
|
14
14
|
const viem_1 = require("viem");
|
|
15
15
|
const binary_js_1 = require("../binary.js");
|
|
16
16
|
const handle_js_1 = require("../handle.js");
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Subset of ENCRYPTION types currently supported for encryption/decryption.
|
|
19
|
+
*
|
|
20
|
+
* @remarks TODO: review need of `euint64` and `euint160` — `Lib.sol` only supports `euint256` and `ebool`.
|
|
21
|
+
*/
|
|
18
22
|
exports.supportedFheTypes = {
|
|
19
23
|
euint64: handle_js_1.handleTypes.euint64,
|
|
20
24
|
euint160: handle_js_1.handleTypes.euint160,
|
|
@@ -22,12 +26,21 @@ exports.supportedFheTypes = {
|
|
|
22
26
|
ebool: handle_js_1.handleTypes.ebool,
|
|
23
27
|
};
|
|
24
28
|
const supportedFheTypeNames = Object.keys(exports.supportedFheTypes);
|
|
29
|
+
/** Schema that validates a string is one of the supported ENCRYPTION type names. */
|
|
25
30
|
exports.SupportedFheTypeName = effect_1.Schema.Literal(...supportedFheTypeNames);
|
|
31
|
+
/** Schema that validates a number is one of the supported ENCRYPTION type integer identifiers. */
|
|
26
32
|
// TODO: extend to all types
|
|
27
33
|
exports.SupportedFheType = effect_1.Schema.Literal(...Object.values(exports.supportedFheTypes));
|
|
34
|
+
/** Map of encryption scheme names to their integer identifiers. Currently only X-Wing (2) is supported. */
|
|
28
35
|
exports.encryptionSchemes = {
|
|
29
36
|
xwing: 2,
|
|
30
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* Returns the human-readable name of an encryption scheme.
|
|
40
|
+
* @param scheme - The encryption scheme integer identifier.
|
|
41
|
+
* @returns The scheme name (e.g. `"X-Wing"`).
|
|
42
|
+
* @throws If the scheme identifier is unknown.
|
|
43
|
+
*/
|
|
31
44
|
function getEncryptionSchemeName(scheme) {
|
|
32
45
|
switch (scheme) {
|
|
33
46
|
case exports.encryptionSchemes.xwing:
|
|
@@ -36,22 +49,31 @@ function getEncryptionSchemeName(scheme) {
|
|
|
36
49
|
throw new Error(`Unknown encryption scheme: ${scheme}`);
|
|
37
50
|
}
|
|
38
51
|
}
|
|
52
|
+
/** Schema that validates a value is a known encryption scheme identifier. */
|
|
39
53
|
exports.EncryptionScheme = effect_1.Schema.Literal(exports.encryptionSchemes.xwing);
|
|
54
|
+
/** Schema for an ENCRYPTION ciphertext: encryption scheme, ENCRYPTION type, and the encrypted value as a hex string. */
|
|
40
55
|
exports.Ciphertext = effect_1.Schema.Struct({
|
|
41
56
|
scheme: exports.EncryptionScheme,
|
|
42
57
|
type: exports.SupportedFheType,
|
|
43
58
|
value: binary_js_1.HexString,
|
|
44
59
|
});
|
|
60
|
+
/** Schema for a ciphertext paired with the {@link InputContext} it was encrypted under. */
|
|
45
61
|
exports.CiphertextWithContext = effect_1.Schema.Struct({
|
|
46
62
|
ciphertext: exports.Ciphertext,
|
|
47
63
|
context: handle_js_1.InputContext,
|
|
48
64
|
});
|
|
65
|
+
/** Schema for the result of an encryption operation: ciphertext, input context, prehandle, and final handle. */
|
|
49
66
|
exports.EncryptResult = effect_1.Schema.Struct({
|
|
50
67
|
ciphertext: exports.Ciphertext,
|
|
51
68
|
context: handle_js_1.InputContext,
|
|
52
69
|
prehandle: binary_js_1.Bytes32,
|
|
53
70
|
handle: binary_js_1.Bytes32,
|
|
54
71
|
});
|
|
72
|
+
/**
|
|
73
|
+
* Schema for an ENCRYPTION plaintext value. The `value` field type depends on the ENCRYPTION type:
|
|
74
|
+
* - `euint64` / `euint160` / `euint256`: `bigint`
|
|
75
|
+
* - `ebool`: `boolean`
|
|
76
|
+
*/
|
|
55
77
|
exports.Plaintext = effect_1.Schema.Union(effect_1.Schema.Struct({
|
|
56
78
|
scheme: exports.EncryptionScheme,
|
|
57
79
|
type: effect_1.Schema.Literal(handle_js_1.handleTypes.euint64, handle_js_1.handleTypes.euint160, handle_js_1.handleTypes.euint256),
|
|
@@ -61,10 +83,23 @@ exports.Plaintext = effect_1.Schema.Union(effect_1.Schema.Struct({
|
|
|
61
83
|
type: effect_1.Schema.Literal(handle_js_1.handleTypes.ebool),
|
|
62
84
|
value: effect_1.Schema.Boolean,
|
|
63
85
|
}));
|
|
86
|
+
/** Schema for a plaintext paired with the {@link InputContext} it will be encrypted under. */
|
|
64
87
|
exports.PlaintextWithContext = effect_1.Schema.Struct({
|
|
65
88
|
plaintext: exports.Plaintext,
|
|
66
89
|
context: handle_js_1.InputContext,
|
|
67
90
|
});
|
|
91
|
+
/**
|
|
92
|
+
* Converts a `bigint` to a typed {@link Plaintext} value.
|
|
93
|
+
*
|
|
94
|
+
* For integer ENCRYPTION types (`euint64`, `euint160`, `euint256`) the value is passed through as-is.
|
|
95
|
+
* For `ebool`, non-zero values become `true`.
|
|
96
|
+
*
|
|
97
|
+
* @param scheme - The encryption scheme identifier.
|
|
98
|
+
* @param type - The ENCRYPTION type to interpret the value as.
|
|
99
|
+
* @param bigPt - The raw bigint plaintext value.
|
|
100
|
+
* @returns A typed `Plaintext` matching the given scheme and ENCRYPTION type.
|
|
101
|
+
* @throws If `type` is not a supported ENCRYPTION type.
|
|
102
|
+
*/
|
|
68
103
|
function bigintToPlaintext(scheme, type, bigPt) {
|
|
69
104
|
switch (type) {
|
|
70
105
|
case handle_js_1.handleTypes.euint64:
|
|
@@ -86,15 +121,29 @@ function bigintToPlaintext(scheme, type, bigPt) {
|
|
|
86
121
|
}
|
|
87
122
|
throw new Error(`Unsupported Encryption Scheme type: ${type}`);
|
|
88
123
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
124
|
+
/**
|
|
125
|
+
* ABI parameter schema for on-chain ciphertext input encoding.
|
|
126
|
+
*
|
|
127
|
+
* Compatible with Solidity's `abi.decode(input, (bytes32, bytes))`:
|
|
128
|
+
* ```solidity
|
|
129
|
+
* (bytes32 externalHandle, bytes memory ciphertext) = abi.decode(input, (bytes32, bytes));
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* This is the source of truth for the encoding format and does not refer to
|
|
133
|
+
* an actual contract or Solidity type's ABI.
|
|
134
|
+
*/
|
|
94
135
|
const ciphertextInputAbi = [
|
|
95
136
|
{ name: 'handle', type: 'bytes32' },
|
|
96
137
|
{ name: 'ciphertext', type: 'bytes' },
|
|
97
138
|
];
|
|
139
|
+
/**
|
|
140
|
+
* Decodes an ABI-encoded ciphertext input into its components.
|
|
141
|
+
*
|
|
142
|
+
* The input format is: `4-byte version || abi.encode(bytes32 handle, bytes ciphertext)`.
|
|
143
|
+
*
|
|
144
|
+
* @param input - The raw encoded input as a byte array or hex string.
|
|
145
|
+
* @returns The decoded version, handle, and ciphertext.
|
|
146
|
+
*/
|
|
98
147
|
function decodeCiphertextInput(input) {
|
|
99
148
|
const bytes = typeof input === 'string' ? (0, viem_1.hexToBytes)(input) : input;
|
|
100
149
|
const buf = new Uint8Array(bytes).buffer;
|
|
@@ -102,6 +151,16 @@ function decodeCiphertextInput(input) {
|
|
|
102
151
|
const [handle, ciphertext] = (0, viem_1.decodeAbiParameters)(ciphertextInputAbi, bytes.slice(4));
|
|
103
152
|
return { version, handle, ciphertext };
|
|
104
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Encodes a handle and ciphertext into the on-chain input format.
|
|
156
|
+
*
|
|
157
|
+
* The output format is: `4-byte version || abi.encode(bytes32 handle, bytes ciphertext)`.
|
|
158
|
+
*
|
|
159
|
+
* @param version - The encoding version (int32).
|
|
160
|
+
* @param handle - The 32-byte handle as a hex string.
|
|
161
|
+
* @param ciphertext - The ciphertext as a hex string.
|
|
162
|
+
* @returns The ABI-encoded input as a hex string.
|
|
163
|
+
*/
|
|
105
164
|
function encodeCiphertextInput(version, handle, ciphertext) {
|
|
106
165
|
const rest = (0, viem_1.hexToBytes)((0, viem_1.encodeAbiParameters)(ciphertextInputAbi, [handle, ciphertext]));
|
|
107
166
|
const buf = new ArrayBuffer(rest.length + 4);
|
|
@@ -111,6 +170,14 @@ function encodeCiphertextInput(version, handle, ciphertext) {
|
|
|
111
170
|
view.set(rest, 4);
|
|
112
171
|
return (0, viem_1.bytesToHex)(view);
|
|
113
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Converts a {@link Plaintext} to its `bigint` representation.
|
|
175
|
+
*
|
|
176
|
+
* Integer types pass through directly; `ebool` maps `true` → `1n`, `false` → `0n`.
|
|
177
|
+
*
|
|
178
|
+
* @param plaintext - The plaintext to convert.
|
|
179
|
+
* @returns The bigint representation of the plaintext value.
|
|
180
|
+
*/
|
|
114
181
|
function plaintextToBigint(plaintext) {
|
|
115
182
|
switch (plaintext.type) {
|
|
116
183
|
case handle_js_1.handleTypes.euint64:
|
|
@@ -121,16 +188,40 @@ function plaintextToBigint(plaintext) {
|
|
|
121
188
|
return plaintext.value ? 1n : 0n;
|
|
122
189
|
}
|
|
123
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Converts a {@link Plaintext} to a {@link Bytes32} hex string.
|
|
193
|
+
* @param plaintext - The plaintext to convert.
|
|
194
|
+
* @returns A 32-byte hex representation of the plaintext value.
|
|
195
|
+
*/
|
|
124
196
|
function plaintextToBytes32(plaintext) {
|
|
125
197
|
return (0, binary_js_1.bigintToBytes32)(plaintextToBigint(plaintext));
|
|
126
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Converts a {@link Plaintext} to a 32-byte `Buffer`.
|
|
201
|
+
* @param plaintext - The plaintext to convert.
|
|
202
|
+
* @returns A 32-byte big-endian buffer of the plaintext value.
|
|
203
|
+
*/
|
|
127
204
|
function plaintextToBytes(plaintext) {
|
|
128
205
|
return (0, binary_js_1.bigintToBytes)(plaintextToBigint(plaintext));
|
|
129
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Parses a {@link Bytes32} hex string into a typed {@link Plaintext}.
|
|
209
|
+
* @param plaintext - The 32-byte hex value to interpret.
|
|
210
|
+
* @param scheme - The encryption scheme identifier.
|
|
211
|
+
* @param type - The ENCRYPTION type to interpret the bytes as.
|
|
212
|
+
* @returns A typed `Plaintext` value.
|
|
213
|
+
*/
|
|
130
214
|
function bytes32ToPlaintext(plaintext, scheme, type) {
|
|
131
215
|
return bigintToPlaintext(scheme, type, BigInt(plaintext));
|
|
132
216
|
}
|
|
217
|
+
/**
|
|
218
|
+
* Parses a `Uint8Array` into a typed {@link Plaintext}.
|
|
219
|
+
* @param plaintext - The byte array to interpret.
|
|
220
|
+
* @param scheme - The encryption scheme identifier.
|
|
221
|
+
* @param type - The ENCRYPTION type to interpret the bytes as.
|
|
222
|
+
* @returns A typed `Plaintext` value.
|
|
223
|
+
*/
|
|
133
224
|
function bytesToPlaintext(plaintext, scheme, type) {
|
|
134
225
|
return bigintToPlaintext(scheme, type, BigInt((0, binary_js_1.bytesToBigInt)(plaintext)));
|
|
135
226
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmNyeXB0aW9uL2VuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEZBLDBEQU9DO0FBZ0lELDhDQXlCQztBQTBCRCxzREFhQztBQVlELHNEQWNDO0FBVUQsOENBU0M7QUFPRCxnREFFQztBQU9ELDRDQUVDO0FBU0QsZ0RBTUM7QUFTRCw0Q0FNQztBQWhZRCxtQ0FBZ0M7QUFDaEMsK0JBUWM7QUFDZCw0Q0FNc0I7QUFDdEIsNENBQXlEO0FBaUN6RDs7OztHQUlHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRztJQUMvQixPQUFPLEVBQUUsdUJBQVcsQ0FBQyxPQUFPO0lBQzVCLFFBQVEsRUFBRSx1QkFBVyxDQUFDLFFBQVE7SUFDOUIsUUFBUSxFQUFFLHVCQUFXLENBQUMsUUFBUTtJQUM5QixLQUFLLEVBQUUsdUJBQVcsQ0FBQyxLQUFLO0NBQ2hCLENBQUM7QUFFWCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3ZDLHlCQUFpQixDQUNvQixDQUFDO0FBRXhDLG9GQUFvRjtBQUN2RSxRQUFBLG9CQUFvQixHQUFHLGVBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO0FBSzdFLGtHQUFrRztBQUNsRyw0QkFBNEI7QUFDZixRQUFBLGdCQUFnQixHQUFHLGVBQU0sQ0FBQyxPQUFPLENBQzVDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyx5QkFBaUIsQ0FBQyxDQUNwQyxDQUFDO0FBS0YsMkdBQTJHO0FBQzlGLFFBQUEsaUJBQWlCLEdBQUc7SUFDL0IsS0FBSyxFQUFFLENBQUM7Q0FDQSxDQUFDO0FBRVg7Ozs7O0dBS0c7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxNQUFjO0lBQ3BELFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLHlCQUFpQixDQUFDLEtBQUs7WUFDMUIsT0FBTyxRQUFRLENBQUM7UUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { Ciphertext, EncryptionScheme, Plaintext, SupportedFheType, SupportedFheTypeName, bigintToPlaintext, bytes32ToPlaintext, bytesToPlaintext, encryptionSchemes, getEncryptionSchemeName, plaintextToBigint, plaintextToBytes, plaintextToBytes32, supportedFheTypes, type EncryptionSchemes, } from './encryption.js';
|
|
@@ -1,18 +1,19 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
|
|
3
|
+
exports.supportedFheTypes = exports.plaintextToBytes32 = exports.plaintextToBytes = exports.plaintextToBigint = exports.getEncryptionSchemeName = exports.encryptionSchemes = exports.bytesToPlaintext = exports.bytes32ToPlaintext = exports.bigintToPlaintext = exports.SupportedFheTypeName = exports.SupportedFheType = exports.Plaintext = exports.EncryptionScheme = exports.Ciphertext = void 0;
|
|
4
|
+
var encryption_js_1 = require("./encryption.js");
|
|
5
|
+
Object.defineProperty(exports, "Ciphertext", { enumerable: true, get: function () { return encryption_js_1.Ciphertext; } });
|
|
6
|
+
Object.defineProperty(exports, "EncryptionScheme", { enumerable: true, get: function () { return encryption_js_1.EncryptionScheme; } });
|
|
7
|
+
Object.defineProperty(exports, "Plaintext", { enumerable: true, get: function () { return encryption_js_1.Plaintext; } });
|
|
8
|
+
Object.defineProperty(exports, "SupportedFheType", { enumerable: true, get: function () { return encryption_js_1.SupportedFheType; } });
|
|
9
|
+
Object.defineProperty(exports, "SupportedFheTypeName", { enumerable: true, get: function () { return encryption_js_1.SupportedFheTypeName; } });
|
|
10
|
+
Object.defineProperty(exports, "bigintToPlaintext", { enumerable: true, get: function () { return encryption_js_1.bigintToPlaintext; } });
|
|
11
|
+
Object.defineProperty(exports, "bytes32ToPlaintext", { enumerable: true, get: function () { return encryption_js_1.bytes32ToPlaintext; } });
|
|
12
|
+
Object.defineProperty(exports, "bytesToPlaintext", { enumerable: true, get: function () { return encryption_js_1.bytesToPlaintext; } });
|
|
13
|
+
Object.defineProperty(exports, "encryptionSchemes", { enumerable: true, get: function () { return encryption_js_1.encryptionSchemes; } });
|
|
14
|
+
Object.defineProperty(exports, "getEncryptionSchemeName", { enumerable: true, get: function () { return encryption_js_1.getEncryptionSchemeName; } });
|
|
15
|
+
Object.defineProperty(exports, "plaintextToBigint", { enumerable: true, get: function () { return encryption_js_1.plaintextToBigint; } });
|
|
16
|
+
Object.defineProperty(exports, "plaintextToBytes", { enumerable: true, get: function () { return encryption_js_1.plaintextToBytes; } });
|
|
17
|
+
Object.defineProperty(exports, "plaintextToBytes32", { enumerable: true, get: function () { return encryption_js_1.plaintextToBytes32; } });
|
|
18
|
+
Object.defineProperty(exports, "supportedFheTypes", { enumerable: true, get: function () { return encryption_js_1.supportedFheTypes; } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5jcnlwdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFnQnlCO0FBZnZCLDJHQUFBLFVBQVUsT0FBQTtBQUNWLGlIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDBHQUFBLFNBQVMsT0FBQTtBQUNULGlIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHFIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLGtIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLG1IQUFBLGtCQUFrQixPQUFBO0FBQ2xCLGlIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLGtIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLHdIQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLGtIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLGlIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLG1IQUFBLGtCQUFrQixPQUFBO0FBQ2xCLGtIQUFBLGlCQUFpQixPQUFBIn0=
|