@inco/lightning-js 0.0.0-bootstrap.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +587 -0
- package/dist/cjs/advancedacl/index.d.ts +2 -0
- package/dist/cjs/advancedacl/index.js +19 -0
- package/dist/cjs/advancedacl/session-key.d.ts +95 -0
- package/dist/cjs/advancedacl/session-key.js +376 -0
- package/dist/cjs/advancedacl/types.d.ts +16 -0
- package/dist/cjs/advancedacl/types.js +3 -0
- package/dist/cjs/attestedcompute/attested-compute.d.ts +65 -0
- package/dist/cjs/attestedcompute/attested-compute.js +80 -0
- package/dist/cjs/attestedcompute/types.d.ts +35 -0
- package/dist/cjs/attestedcompute/types.js +46 -0
- package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +61 -0
- package/dist/cjs/attesteddecrypt/attested-decrypt.js +118 -0
- package/dist/cjs/attesteddecrypt/index.d.ts +1 -0
- package/dist/cjs/attesteddecrypt/index.js +18 -0
- package/dist/cjs/attesteddecrypt/types.d.ts +27 -0
- package/dist/cjs/attesteddecrypt/types.js +16 -0
- 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 +104 -0
- package/dist/cjs/binary.js +171 -0
- package/dist/cjs/chain.d.ts +50 -0
- package/dist/cjs/chain.js +62 -0
- 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 +51 -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 +235 -0
- package/dist/cjs/encryption/encryption.js +226 -0
- package/dist/cjs/encryption/index.d.ts +1 -0
- package/dist/cjs/encryption/index.js +19 -0
- package/dist/cjs/generated/abis/add-two.d.ts +117 -0
- package/dist/cjs/generated/abis/add-two.js +80 -0
- package/dist/cjs/generated/abis/lightning.d.ts +3362 -0
- package/dist/cjs/generated/abis/lightning.js +2445 -0
- package/dist/cjs/generated/abis/test-elist.d.ts +276 -0
- package/dist/cjs/generated/abis/test-elist.js +168 -0
- package/dist/cjs/generated/abis/verifier.d.ts +1353 -0
- package/dist/cjs/generated/abis/verifier.js +954 -0
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +1494 -0
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.js +395 -0
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +247 -0
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.js +80 -0
- package/dist/cjs/generated/es/inco/helioswrapper/v1/helioswrapper_pb.d.ts +77 -0
- package/dist/cjs/generated/es/inco/helioswrapper/v1/helioswrapper_pb.js +28 -0
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +685 -0
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +100 -0
- package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.d.ts +289 -0
- package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.js +136 -0
- package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +371 -0
- package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +88 -0
- package/dist/cjs/generated/lightning.d.ts +830 -0
- package/dist/cjs/generated/lightning.js +872 -0
- package/dist/cjs/generated/local-node.d.ts +50 -0
- package/dist/cjs/generated/local-node.js +107 -0
- package/dist/cjs/handle.d.ts +123 -0
- package/dist/cjs/handle.js +221 -0
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.js +31 -0
- package/dist/cjs/kms/client.d.ts +12 -0
- package/dist/cjs/kms/client.js +47 -0
- package/dist/cjs/kms/quorumClient.d.ts +65 -0
- package/dist/cjs/kms/quorumClient.js +463 -0
- 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 +8 -0
- package/dist/cjs/kms/thresholdPromises.js +62 -0
- package/dist/cjs/lite/attested-compute.d.ts +6 -0
- package/dist/cjs/lite/attested-compute.js +8 -0
- package/dist/cjs/lite/attested-decrypt.d.ts +4 -0
- package/dist/cjs/lite/attested-decrypt.js +6 -0
- package/dist/cjs/lite/deployments.d.ts +24 -0
- package/dist/cjs/lite/deployments.js +21 -0
- package/dist/cjs/lite/hadu.d.ts +4 -0
- package/dist/cjs/lite/hadu.js +28 -0
- package/dist/cjs/lite/index.d.ts +13 -0
- package/dist/cjs/lite/index.js +31 -0
- package/dist/cjs/lite/lightning.d.ts +459 -0
- package/dist/cjs/lite/lightning.js +696 -0
- package/dist/cjs/lite/types.d.ts +47 -0
- package/dist/cjs/lite/types.js +3 -0
- package/dist/cjs/lite/xwing.d.ts +154 -0
- package/dist/cjs/lite/xwing.js +326 -0
- package/dist/cjs/local/index.d.ts +1 -0
- package/dist/cjs/local/index.js +18 -0
- package/dist/cjs/local/local-node.d.ts +37 -0
- package/dist/cjs/local/local-node.js +80 -0
- package/dist/cjs/reencryption/eip712.d.ts +56 -0
- package/dist/cjs/reencryption/eip712.js +90 -0
- package/dist/cjs/reencryption/index.d.ts +2 -0
- package/dist/cjs/reencryption/index.js +19 -0
- package/dist/cjs/reencryption/types.d.ts +48 -0
- package/dist/cjs/reencryption/types.js +3 -0
- package/dist/cjs/retry.d.ts +30 -0
- package/dist/cjs/retry.js +87 -0
- package/dist/cjs/schema.d.ts +4 -0
- package/dist/cjs/schema.js +19 -0
- package/dist/cjs/test/mocks.d.ts +20 -0
- package/dist/cjs/test/mocks.js +72 -0
- package/dist/cjs/viem.d.ts +1141 -0
- package/dist/cjs/viem.js +36 -0
- package/dist/esm/advancedacl/index.d.ts +2 -0
- package/dist/esm/advancedacl/index.js +3 -0
- package/dist/esm/advancedacl/session-key.d.ts +95 -0
- package/dist/esm/advancedacl/session-key.js +367 -0
- package/dist/esm/advancedacl/types.d.ts +16 -0
- package/dist/esm/advancedacl/types.js +2 -0
- package/dist/esm/attestedcompute/attested-compute.d.ts +65 -0
- package/dist/esm/attestedcompute/attested-compute.js +76 -0
- package/dist/esm/attestedcompute/types.d.ts +35 -0
- package/dist/esm/attestedcompute/types.js +42 -0
- package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +61 -0
- package/dist/esm/attesteddecrypt/attested-decrypt.js +112 -0
- package/dist/esm/attesteddecrypt/index.d.ts +1 -0
- package/dist/esm/attesteddecrypt/index.js +2 -0
- package/dist/esm/attesteddecrypt/types.d.ts +27 -0
- package/dist/esm/attesteddecrypt/types.js +12 -0
- 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 +104 -0
- package/dist/esm/binary.js +155 -0
- package/dist/esm/chain.d.ts +50 -0
- package/dist/esm/chain.js +58 -0
- 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 +51 -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 +235 -0
- package/dist/esm/encryption/encryption.js +214 -0
- package/dist/esm/encryption/index.d.ts +1 -0
- package/dist/esm/encryption/index.js +2 -0
- package/dist/esm/generated/abis/add-two.d.ts +117 -0
- package/dist/esm/generated/abis/add-two.js +77 -0
- package/dist/esm/generated/abis/lightning.d.ts +3362 -0
- package/dist/esm/generated/abis/lightning.js +2442 -0
- package/dist/esm/generated/abis/test-elist.d.ts +276 -0
- package/dist/esm/generated/abis/test-elist.js +165 -0
- package/dist/esm/generated/abis/verifier.d.ts +1353 -0
- package/dist/esm/generated/abis/verifier.js +951 -0
- package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +1494 -0
- package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.js +392 -0
- package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +247 -0
- package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js +77 -0
- package/dist/esm/generated/es/inco/helioswrapper/v1/helioswrapper_pb.d.ts +77 -0
- package/dist/esm/generated/es/inco/helioswrapper/v1/helioswrapper_pb.js +25 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +685 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +97 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.d.ts +289 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +133 -0
- package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +371 -0
- package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +85 -0
- package/dist/esm/generated/lightning.d.ts +830 -0
- package/dist/esm/generated/lightning.js +869 -0
- package/dist/esm/generated/local-node.d.ts +50 -0
- package/dist/esm/generated/local-node.js +104 -0
- package/dist/esm/handle.d.ts +123 -0
- package/dist/esm/handle.js +212 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/kms/client.d.ts +12 -0
- package/dist/esm/kms/client.js +40 -0
- package/dist/esm/kms/quorumClient.d.ts +65 -0
- package/dist/esm/kms/quorumClient.js +459 -0
- 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 +8 -0
- package/dist/esm/kms/thresholdPromises.js +59 -0
- package/dist/esm/lite/attested-compute.d.ts +6 -0
- package/dist/esm/lite/attested-compute.js +4 -0
- package/dist/esm/lite/attested-decrypt.d.ts +4 -0
- package/dist/esm/lite/attested-decrypt.js +3 -0
- package/dist/esm/lite/deployments.d.ts +24 -0
- package/dist/esm/lite/deployments.js +17 -0
- package/dist/esm/lite/hadu.d.ts +4 -0
- package/dist/esm/lite/hadu.js +24 -0
- package/dist/esm/lite/index.d.ts +13 -0
- package/dist/esm/lite/index.js +10 -0
- package/dist/esm/lite/lightning.d.ts +459 -0
- package/dist/esm/lite/lightning.js +692 -0
- package/dist/esm/lite/types.d.ts +47 -0
- package/dist/esm/lite/types.js +2 -0
- package/dist/esm/lite/xwing.d.ts +154 -0
- package/dist/esm/lite/xwing.js +311 -0
- package/dist/esm/local/index.d.ts +1 -0
- package/dist/esm/local/index.js +2 -0
- package/dist/esm/local/local-node.d.ts +37 -0
- package/dist/esm/local/local-node.js +76 -0
- package/dist/esm/reencryption/eip712.d.ts +56 -0
- package/dist/esm/reencryption/eip712.js +87 -0
- package/dist/esm/reencryption/index.d.ts +2 -0
- package/dist/esm/reencryption/index.js +3 -0
- package/dist/esm/reencryption/types.d.ts +48 -0
- package/dist/esm/reencryption/types.js +2 -0
- package/dist/esm/retry.d.ts +30 -0
- package/dist/esm/retry.js +82 -0
- package/dist/esm/schema.d.ts +4 -0
- package/dist/esm/schema.js +15 -0
- package/dist/esm/test/mocks.d.ts +20 -0
- package/dist/esm/test/mocks.js +64 -0
- package/dist/esm/viem.d.ts +1141 -0
- package/dist/esm/viem.js +32 -0
- package/dist/types/advancedacl/index.d.ts +2 -0
- package/dist/types/advancedacl/session-key.d.ts +95 -0
- package/dist/types/advancedacl/types.d.ts +16 -0
- package/dist/types/attestedcompute/attested-compute.d.ts +65 -0
- package/dist/types/attestedcompute/types.d.ts +35 -0
- package/dist/types/attesteddecrypt/attested-decrypt.d.ts +61 -0
- package/dist/types/attesteddecrypt/index.d.ts +1 -0
- package/dist/types/attesteddecrypt/types.d.ts +27 -0
- 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 +104 -0
- package/dist/types/chain.d.ts +50 -0
- 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 +51 -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 +235 -0
- package/dist/types/encryption/index.d.ts +1 -0
- package/dist/types/generated/abis/add-two.d.ts +117 -0
- package/dist/types/generated/abis/lightning.d.ts +3362 -0
- package/dist/types/generated/abis/test-elist.d.ts +276 -0
- package/dist/types/generated/abis/verifier.d.ts +1353 -0
- package/dist/types/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +1494 -0
- package/dist/types/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +247 -0
- package/dist/types/generated/es/inco/helioswrapper/v1/helioswrapper_pb.d.ts +77 -0
- package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +685 -0
- package/dist/types/generated/es/inco/kms/lite/v1/types_pb.d.ts +289 -0
- package/dist/types/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +371 -0
- package/dist/types/generated/lightning.d.ts +830 -0
- package/dist/types/generated/local-node.d.ts +50 -0
- package/dist/types/handle.d.ts +123 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/kms/client.d.ts +12 -0
- package/dist/types/kms/quorumClient.d.ts +65 -0
- 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 +8 -0
- package/dist/types/lite/attested-compute.d.ts +6 -0
- package/dist/types/lite/attested-decrypt.d.ts +4 -0
- package/dist/types/lite/deployments.d.ts +24 -0
- package/dist/types/lite/hadu.d.ts +4 -0
- package/dist/types/lite/index.d.ts +13 -0
- package/dist/types/lite/lightning.d.ts +459 -0
- package/dist/types/lite/types.d.ts +47 -0
- package/dist/types/lite/xwing.d.ts +154 -0
- package/dist/types/local/index.d.ts +1 -0
- package/dist/types/local/local-node.d.ts +37 -0
- package/dist/types/reencryption/eip712.d.ts +56 -0
- package/dist/types/reencryption/index.d.ts +2 -0
- package/dist/types/reencryption/types.d.ts +48 -0
- package/dist/types/retry.d.ts +30 -0
- package/dist/types/schema.d.ts +4 -0
- package/dist/types/test/mocks.d.ts +20 -0
- package/dist/types/viem.d.ts +1141 -0
- package/package.json +129 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
/**
|
|
3
|
+
* Schema for the environment variables required to connect to a local Inco node.
|
|
4
|
+
*
|
|
5
|
+
* Includes executor/sender addresses, keys, covalidator settings, and optional
|
|
6
|
+
* remote compute-server overrides. Typically populated from a `.env` file.
|
|
7
|
+
*/
|
|
8
|
+
export declare const LocalNodeEnv: Schema.Struct<{
|
|
9
|
+
DEPLOYER_ADDRESS: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
|
|
10
|
+
STATE_DUMP: typeof Schema.String;
|
|
11
|
+
EXECUTOR_ADDRESS: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
|
|
12
|
+
NETWORK_PUBKEY: Schema.optional<Schema.TemplateLiteral<`0x${string}`>>;
|
|
13
|
+
SENDER_ADDRESS: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
|
|
14
|
+
SENDER_PRIVATE_KEY: Schema.TemplateLiteral<`0x${string}`>;
|
|
15
|
+
EIP712_SIGNER_ADDRESS: Schema.optional<Schema.TemplateLiteral<`0x${string}`>>;
|
|
16
|
+
PEPPER: typeof Schema.String;
|
|
17
|
+
COVALIDATOR_NETWORK_PRIVATE_KEY: Schema.optional<Schema.TemplateLiteral<`0x${string}`>>;
|
|
18
|
+
COVALIDATOR_EIP712_PRIVATE_SIGNING_KEY: Schema.optional<Schema.TemplateLiteral<`0x${string}`>>;
|
|
19
|
+
COVALIDATOR_INCO_EXECUTOR_ADDR: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
|
|
20
|
+
COVALIDATOR_HOST_CHAIN_ID: Schema.optional<typeof Schema.String>;
|
|
21
|
+
COVALIDATOR_URL: Schema.optional<typeof Schema.String>;
|
|
22
|
+
COVALIDATOR_HOST_CHAIN_RPC_URL: Schema.optional<typeof Schema.String>;
|
|
23
|
+
COVALIDATOR_COMPUTE_TYPE: Schema.optional<typeof Schema.String>;
|
|
24
|
+
COVALIDATOR_STORAGE_KEY: Schema.optional<Schema.TemplateLiteral<`0x${string}`>>;
|
|
25
|
+
}>;
|
|
26
|
+
/** Parsed local node environment configuration. */
|
|
27
|
+
export type LocalNodeEnv = typeof LocalNodeEnv.Type;
|
|
28
|
+
/**
|
|
29
|
+
* Parses a dotenv-formatted string or `Buffer` into a validated {@link LocalNodeEnv}.
|
|
30
|
+
*
|
|
31
|
+
* Falls back to `process.env` when no argument is provided.
|
|
32
|
+
*
|
|
33
|
+
* @param envFileOrObj - A dotenv-formatted string, `Buffer`, or `undefined` to use `process.env`.
|
|
34
|
+
* @returns A validated `LocalNodeEnv` object.
|
|
35
|
+
* @throws If required environment variables are missing or invalid.
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseLocalEnv(envFileOrObj?: string | Buffer): LocalNodeEnv;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
import { Address } from 'viem';
|
|
3
|
+
declare const baseEIP712: Schema.Struct<{
|
|
4
|
+
domain: Schema.Struct<{
|
|
5
|
+
chainId: typeof Schema.BigInt;
|
|
6
|
+
name: typeof Schema.String;
|
|
7
|
+
version: typeof Schema.String;
|
|
8
|
+
verifyingContract: Schema.optional<Schema.TemplateLiteral<`0x${string}`>>;
|
|
9
|
+
}>;
|
|
10
|
+
primaryType: typeof Schema.String;
|
|
11
|
+
types: Schema.Record$<typeof Schema.String, Schema.Array$<Schema.Struct<{
|
|
12
|
+
name: typeof Schema.String;
|
|
13
|
+
type: typeof Schema.String;
|
|
14
|
+
}>>>;
|
|
15
|
+
}>;
|
|
16
|
+
type BaseEIP712 = typeof baseEIP712.Type;
|
|
17
|
+
/**
|
|
18
|
+
* An EIP-712 typed data payload with a generic `message` field.
|
|
19
|
+
*
|
|
20
|
+
* Extends the base EIP-712 structure (domain, primaryType, types) with
|
|
21
|
+
* a strongly-typed `message` object for signing.
|
|
22
|
+
*
|
|
23
|
+
* @typeParam Message - The shape of the application-specific message to sign.
|
|
24
|
+
*/
|
|
25
|
+
export interface EIP712<Message extends object> extends BaseEIP712 {
|
|
26
|
+
message: Message;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates an EIP-712 typed data payload for user signing.
|
|
30
|
+
*
|
|
31
|
+
* Used to verify the user controls the private key corresponding to the ephemeral
|
|
32
|
+
* public key embedded in the payload. The `message` keys must exactly match the
|
|
33
|
+
* `name` values in `primaryTypeFields`.
|
|
34
|
+
*
|
|
35
|
+
* @typeParam PrimaryType - The EIP-712 primary type name.
|
|
36
|
+
* @typeParam Message - The shape of the message to sign.
|
|
37
|
+
* @param params.chainId - The chain ID for the EIP-712 domain.
|
|
38
|
+
* @param params.primaryType - The primary type name (e.g. `"Reencrypt"`).
|
|
39
|
+
* @param params.primaryTypeFields - The field definitions for the primary type.
|
|
40
|
+
* @param params.message - The message object to sign (must match `primaryTypeFields`).
|
|
41
|
+
* @param params.verifyingContract - Optional verifying contract address for the domain.
|
|
42
|
+
* @param params.domainName - Human-readable name for the EIP-712 domain.
|
|
43
|
+
* @param params.domainVersion - Version string for the EIP-712 domain.
|
|
44
|
+
* @returns A complete {@link EIP712} payload ready for signing.
|
|
45
|
+
* @throws If message keys do not match `primaryTypeFields` names.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createEIP712Payload<PrimaryType extends string, Message extends object>({ chainId, primaryType, primaryTypeFields, message, verifyingContract, domainName, domainVersion, }: {
|
|
48
|
+
chainId: bigint;
|
|
49
|
+
primaryType: PrimaryType;
|
|
50
|
+
primaryTypeFields: BaseEIP712['types'][PrimaryType];
|
|
51
|
+
message: Message;
|
|
52
|
+
verifyingContract?: Address;
|
|
53
|
+
domainName: string;
|
|
54
|
+
domainVersion: string;
|
|
55
|
+
}): EIP712<Message>;
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Address } from 'viem';
|
|
2
|
+
import { HexString } from '../binary.js';
|
|
3
|
+
import { CiphertextOf, EncryptionScheme, PlaintextOf, SupportedTeeType } from '../encryption/encryption.js';
|
|
4
|
+
import { Handle } from '../handle.js';
|
|
5
|
+
import type { XwingKeypair } from '../lite/xwing.js';
|
|
6
|
+
import type { BackoffConfig } from '../retry.js';
|
|
7
|
+
/**
|
|
8
|
+
* The core reencryption function type. Takes a handle (and optional ciphertext) and returns
|
|
9
|
+
* the decrypted plaintext. Supports retry configuration for handles that are not yet available.
|
|
10
|
+
*
|
|
11
|
+
* @typeParam S - The encryption scheme (e.g. X-Wing).
|
|
12
|
+
*/
|
|
13
|
+
export type Reencryptor<S extends EncryptionScheme> = <T extends SupportedTeeType>(args: ReencryptFnArgs<S, T>, backoffConfig?: Partial<BackoffConfig>) => Promise<PlaintextOf<S, T>>;
|
|
14
|
+
/** Arguments required to construct a {@link Reencryptor}. */
|
|
15
|
+
export interface ReencryptorArgs {
|
|
16
|
+
chainId: bigint;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Arguments for a single reencryption call.
|
|
20
|
+
*
|
|
21
|
+
* @typeParam S - The encryption scheme.
|
|
22
|
+
* @typeParam T - The ENCRYPTION type of the ciphertext.
|
|
23
|
+
*/
|
|
24
|
+
export type ReencryptFnArgs<S extends EncryptionScheme, T extends SupportedTeeType> = {
|
|
25
|
+
handle: Handle;
|
|
26
|
+
/**
|
|
27
|
+
* Optional ciphertext hint. If provided, the reencrypt endpoint may use it directly
|
|
28
|
+
* instead of fetching from the covalidators.
|
|
29
|
+
*/
|
|
30
|
+
ciphertext?: CiphertextOf<S, T>;
|
|
31
|
+
};
|
|
32
|
+
/** Union of supported ephemeral keypair types for reencryption (currently X-Wing only). */
|
|
33
|
+
export type SupportedEphemeralKeypairs = XwingKeypair;
|
|
34
|
+
/** An object whose public key can be serialized to a `Uint8Array`. */
|
|
35
|
+
export interface PubKeyEncodable {
|
|
36
|
+
encodePublicKey(): Uint8Array;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A reencryption request to be sent to a reencrypt endpoint.
|
|
40
|
+
*
|
|
41
|
+
* @typeParam EKP - The type of ephemeral keypair used for the reencryption session.
|
|
42
|
+
*/
|
|
43
|
+
export interface ReencryptEndpointRequest<EKP extends SupportedEphemeralKeypairs> {
|
|
44
|
+
userAddress: Address;
|
|
45
|
+
handle: Handle;
|
|
46
|
+
eip712Signature: HexString;
|
|
47
|
+
ephemeralKeypair: EKP;
|
|
48
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for exponential backoff retry logic.
|
|
3
|
+
*/
|
|
4
|
+
export type BackoffConfig = {
|
|
5
|
+
maxRetries: number;
|
|
6
|
+
baseDelayInMs: number;
|
|
7
|
+
backoffFactor: number;
|
|
8
|
+
errHandler?: (error: Error, attempt: number) => 'stop' | 'continue';
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Checks if an error is safe to retry.
|
|
12
|
+
* Only transient errors matching the allowlist should return true.
|
|
13
|
+
* All other errors fail fast to avoid masking security-critical failures.
|
|
14
|
+
*
|
|
15
|
+
* @param error - The error to check
|
|
16
|
+
* @returns true if the error is transient and safe to retry, false otherwise
|
|
17
|
+
*/
|
|
18
|
+
export declare function isRetryableError(error: Error): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Default error handler that only retries known transient errors.
|
|
21
|
+
* Security-critical errors will fail fast.
|
|
22
|
+
*/
|
|
23
|
+
export declare function defaultRetryErrorHandler(error: Error): 'stop' | 'continue';
|
|
24
|
+
/**
|
|
25
|
+
* Helper function to implement exponential backoff retry logic.
|
|
26
|
+
* @param fn - The function to retry
|
|
27
|
+
* @param config - Optional backoff configuration
|
|
28
|
+
* @returns Promise that resolves with the result of the function
|
|
29
|
+
*/
|
|
30
|
+
export declare function retryWithBackoff<T>(fn: () => Promise<T>, { maxRetries, baseDelayInMs, backoffFactor, errHandler, }?: Partial<BackoffConfig>): Promise<T>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
import { ParseOptions } from 'effect/SchemaAST';
|
|
3
|
+
export declare function parse<A, I>(schema: Schema.Schema<A, I>, obj: unknown, options?: ParseOptions): A;
|
|
4
|
+
export declare function parseJson<A, I>(schema: Schema.Schema<A, I>, json: string | Uint8Array, options?: ParseOptions): A;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Account, Chain, PublicClient, Transport, WalletClient } from 'viem';
|
|
2
|
+
import { vi } from 'vitest';
|
|
3
|
+
import { KmsClient } from '../kms/client.js';
|
|
4
|
+
import { KmsQuorumClient } from '../kms/quorumClient.js';
|
|
5
|
+
interface MinimalKmsClient {
|
|
6
|
+
attestedCompute: ReturnType<typeof vi.fn>;
|
|
7
|
+
attestedDecrypt: ReturnType<typeof vi.fn>;
|
|
8
|
+
attestedReveal: ReturnType<typeof vi.fn>;
|
|
9
|
+
eListAttestedDecrypt: ReturnType<typeof vi.fn>;
|
|
10
|
+
eListAttestedReveal: ReturnType<typeof vi.fn>;
|
|
11
|
+
key: ReturnType<typeof vi.fn>;
|
|
12
|
+
reencrypt: ReturnType<typeof vi.fn>;
|
|
13
|
+
}
|
|
14
|
+
export declare function createMockKmsClient(): MinimalKmsClient & KmsClient;
|
|
15
|
+
export declare function createMockQuorumClient(): KmsQuorumClient;
|
|
16
|
+
export declare function setupMockInQuorumClient(quorumClient: KmsQuorumClient, mockKmsClient: MinimalKmsClient & KmsClient): void;
|
|
17
|
+
export declare function createMockPublicClient(): PublicClient<Transport, Chain>;
|
|
18
|
+
export declare function createTestWalletClient(): WalletClient<Transport, Chain, Account>;
|
|
19
|
+
export declare function createFallbackWalletClient(): WalletClient<Transport, Chain, Account>;
|
|
20
|
+
export {};
|