@primuslabs/fhetransform-sdk 0.4.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/README.md +198 -0
- package/dist/abis/acl.abi.d.ts +379 -0
- package/dist/abis/acl.abi.js +495 -0
- package/dist/abis/acl.abi.js.map +1 -0
- package/dist/abis/alphatrion_reward.abi.d.ts +407 -0
- package/dist/abis/alphatrion_reward.abi.js +532 -0
- package/dist/abis/alphatrion_reward.abi.js.map +1 -0
- package/dist/abis/ciphertext_digests.abi.d.ts +336 -0
- package/dist/abis/ciphertext_digests.abi.js +444 -0
- package/dist/abis/ciphertext_digests.abi.js.map +1 -0
- package/dist/abis/ciphertext_verification.abi.d.ts +637 -0
- package/dist/abis/ciphertext_verification.abi.js +830 -0
- package/dist/abis/ciphertext_verification.abi.js.map +1 -0
- package/dist/abis/convert_token.abi.d.ts +922 -0
- package/dist/abis/convert_token.abi.js +1208 -0
- package/dist/abis/convert_token.abi.js.map +1 -0
- package/dist/abis/decryption.abi.d.ts +956 -0
- package/dist/abis/decryption.abi.js +1244 -0
- package/dist/abis/decryption.abi.js.map +1 -0
- package/dist/abis/erc20.abi.d.ts +265 -0
- package/dist/abis/erc20.abi.js +350 -0
- package/dist/abis/erc20.abi.js.map +1 -0
- package/dist/abis/fhe_executor.abi.d.ts +1535 -0
- package/dist/abis/fhe_executor.abi.js +1962 -0
- package/dist/abis/fhe_executor.abi.js.map +1 -0
- package/dist/abis/space_bridge_config.abi.d.ts +792 -0
- package/dist/abis/space_bridge_config.abi.js +1032 -0
- package/dist/abis/space_bridge_config.abi.js.map +1 -0
- package/dist/abis/token.abi.d.ts +630 -0
- package/dist/abis/token.abi.js +828 -0
- package/dist/abis/token.abi.js.map +1 -0
- package/dist/cli/eusdc.d.ts +2 -0
- package/dist/cli/eusdc.js +41 -0
- package/dist/cli/eusdc.js.map +1 -0
- package/dist/contract/callbacks.d.ts +59 -0
- package/dist/contract/callbacks.js +2 -0
- package/dist/contract/callbacks.js.map +1 -0
- package/dist/contract/convert-token.d.ts +107 -0
- package/dist/contract/convert-token.js +249 -0
- package/dist/contract/convert-token.js.map +1 -0
- package/dist/contract/token.d.ts +167 -0
- package/dist/contract/token.js +404 -0
- package/dist/contract/token.js.map +1 -0
- package/dist/contract/transaction.d.ts +29 -0
- package/dist/contract/transaction.js +2 -0
- package/dist/contract/transaction.js.map +1 -0
- package/dist/core/address.d.ts +118 -0
- package/dist/core/address.js +200 -0
- package/dist/core/address.js.map +1 -0
- package/dist/core/auth.d.ts +68 -0
- package/dist/core/auth.js +58 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/bytes.d.ts +48 -0
- package/dist/core/bytes.js +117 -0
- package/dist/core/bytes.js.map +1 -0
- package/dist/core/cache-manager.d.ts +138 -0
- package/dist/core/cache-manager.js +440 -0
- package/dist/core/cache-manager.js.map +1 -0
- package/dist/core/chain.d.ts +41 -0
- package/dist/core/chain.js +59 -0
- package/dist/core/chain.js.map +1 -0
- package/dist/core/constants.d.ts +24 -0
- package/dist/core/constants.js +25 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/error.d.ts +2 -0
- package/dist/core/error.js +14 -0
- package/dist/core/error.js.map +1 -0
- package/dist/core/errors/error-catalog.d.ts +29 -0
- package/dist/core/errors/error-catalog.js +84 -0
- package/dist/core/errors/error-catalog.js.map +1 -0
- package/dist/core/errors/error-codes.d.ts +52 -0
- package/dist/core/errors/error-codes.js +61 -0
- package/dist/core/errors/error-codes.js.map +1 -0
- package/dist/core/errors/error-utils.d.ts +27 -0
- package/dist/core/errors/error-utils.js +110 -0
- package/dist/core/errors/error-utils.js.map +1 -0
- package/dist/core/errors/fhe-error.d.ts +98 -0
- package/dist/core/errors/fhe-error.js +190 -0
- package/dist/core/errors/fhe-error.js.map +1 -0
- package/dist/core/errors/index.d.ts +4 -0
- package/dist/core/errors/index.js +5 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/estimate.d.ts +39 -0
- package/dist/core/estimate.js +111 -0
- package/dist/core/estimate.js.map +1 -0
- package/dist/core/event.d.ts +212 -0
- package/dist/core/event.js +42 -0
- package/dist/core/event.js.map +1 -0
- package/dist/core/fhe-type.d.ts +75 -0
- package/dist/core/fhe-type.js +115 -0
- package/dist/core/fhe-type.js.map +1 -0
- package/dist/core/fhe.d.ts +11 -0
- package/dist/core/fhe.js +23 -0
- package/dist/core/fhe.js.map +1 -0
- package/dist/core/handle.d.ts +42 -0
- package/dist/core/handle.js +99 -0
- package/dist/core/handle.js.map +1 -0
- package/dist/core/json-utils.d.ts +18 -0
- package/dist/core/json-utils.js +37 -0
- package/dist/core/json-utils.js.map +1 -0
- package/dist/core/kms.d.ts +42 -0
- package/dist/core/kms.js +70 -0
- package/dist/core/kms.js.map +1 -0
- package/dist/core/logger.d.ts +3 -0
- package/dist/core/logger.js +11 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/pretty-print.d.ts +18 -0
- package/dist/core/pretty-print.js +84 -0
- package/dist/core/pretty-print.js.map +1 -0
- package/dist/core/primitives.d.ts +22 -0
- package/dist/core/primitives.js +2 -0
- package/dist/core/primitives.js.map +1 -0
- package/dist/core/retryable-handler.d.ts +74 -0
- package/dist/core/retryable-handler.js +227 -0
- package/dist/core/retryable-handler.js.map +1 -0
- package/dist/core/signer-address-info.d.ts +15 -0
- package/dist/core/signer-address-info.js +33 -0
- package/dist/core/signer-address-info.js.map +1 -0
- package/dist/core/string.d.ts +28 -0
- package/dist/core/string.js +33 -0
- package/dist/core/string.js.map +1 -0
- package/dist/core/swallow.d.ts +23 -0
- package/dist/core/swallow.js +37 -0
- package/dist/core/swallow.js.map +1 -0
- package/dist/core/system-contract-info.d.ts +17 -0
- package/dist/core/system-contract-info.js +41 -0
- package/dist/core/system-contract-info.js.map +1 -0
- package/dist/core/ttl-cache.d.ts +81 -0
- package/dist/core/ttl-cache.js +113 -0
- package/dist/core/ttl-cache.js.map +1 -0
- package/dist/core/tx-error-parser.d.ts +40 -0
- package/dist/core/tx-error-parser.js +83 -0
- package/dist/core/tx-error-parser.js.map +1 -0
- package/dist/core/utils.d.ts +62 -0
- package/dist/core/utils.js +143 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/jazz/encrypt-key-p.d.ts +65 -0
- package/dist/jazz/encrypt-key-p.js +283 -0
- package/dist/jazz/encrypt-key-p.js.map +1 -0
- package/dist/jazz/encrypt-p.d.ts +82 -0
- package/dist/jazz/encrypt-p.js +139 -0
- package/dist/jazz/encrypt-p.js.map +1 -0
- package/dist/jazz/encrypt.d.ts +58 -0
- package/dist/jazz/encrypt.js +155 -0
- package/dist/jazz/encrypt.js.map +1 -0
- package/dist/jazz/input-proof-p.d.ts +122 -0
- package/dist/jazz/input-proof-p.js +265 -0
- package/dist/jazz/input-proof-p.js.map +1 -0
- package/dist/jazz/jazz-client-i.d.ts +16 -0
- package/dist/jazz/jazz-client-i.js +2 -0
- package/dist/jazz/jazz-client-i.js.map +1 -0
- package/dist/jazz/jazz-client.d.ts +18 -0
- package/dist/jazz/jazz-client.js +24 -0
- package/dist/jazz/jazz-client.js.map +1 -0
- package/dist/jazz/key-pair.d.ts +50 -0
- package/dist/jazz/key-pair.js +166 -0
- package/dist/jazz/key-pair.js.map +1 -0
- package/dist/jazz/mock/fake.d.ts +3 -0
- package/dist/jazz/mock/fake.js +23 -0
- package/dist/jazz/mock/fake.js.map +1 -0
- package/dist/jazz/mock/fetch-input-proof.d.ts +4 -0
- package/dist/jazz/mock/fetch-input-proof.js +63 -0
- package/dist/jazz/mock/fetch-input-proof.js.map +1 -0
- package/dist/jazz/mock/fetch-key-url.d.ts +3 -0
- package/dist/jazz/mock/fetch-key-url.js +15 -0
- package/dist/jazz/mock/fetch-key-url.js.map +1 -0
- package/dist/jazz/mock/fetch-public-decrypt.d.ts +3 -0
- package/dist/jazz/mock/fetch-public-decrypt.js +81 -0
- package/dist/jazz/mock/fetch-public-decrypt.js.map +1 -0
- package/dist/jazz/mock/fetch-user-decrypt.d.ts +4 -0
- package/dist/jazz/mock/fetch-user-decrypt.js +174 -0
- package/dist/jazz/mock/fetch-user-decrypt.js.map +1 -0
- package/dist/jazz/module/fetch-input-proof.d.ts +19 -0
- package/dist/jazz/module/fetch-input-proof.js +72 -0
- package/dist/jazz/module/fetch-input-proof.js.map +1 -0
- package/dist/jazz/module/fetch-key-url.d.ts +17 -0
- package/dist/jazz/module/fetch-key-url.js +46 -0
- package/dist/jazz/module/fetch-key-url.js.map +1 -0
- package/dist/jazz/module/fetch-public-decrypt.d.ts +19 -0
- package/dist/jazz/module/fetch-public-decrypt.js +65 -0
- package/dist/jazz/module/fetch-public-decrypt.js.map +1 -0
- package/dist/jazz/module/fetch-user-decrypt.d.ts +19 -0
- package/dist/jazz/module/fetch-user-decrypt.js +109 -0
- package/dist/jazz/module/fetch-user-decrypt.js.map +1 -0
- package/dist/jazz/module/jazz-async-request.d.ts +102 -0
- package/dist/jazz/module/jazz-async-request.js +515 -0
- package/dist/jazz/module/jazz-async-request.js.map +1 -0
- package/dist/jazz/module/jazz-p.d.ts +61 -0
- package/dist/jazz/module/jazz-p.js +33 -0
- package/dist/jazz/module/jazz-p.js.map +1 -0
- package/dist/jazz/module/s3-download.d.ts +85 -0
- package/dist/jazz/module/s3-download.js +293 -0
- package/dist/jazz/module/s3-download.js.map +1 -0
- package/dist/jazz/permit.d.ts +200 -0
- package/dist/jazz/permit.js +319 -0
- package/dist/jazz/permit.js.map +1 -0
- package/dist/jazz/public-decrypt-p.d.ts +96 -0
- package/dist/jazz/public-decrypt-p.js +258 -0
- package/dist/jazz/public-decrypt-p.js.map +1 -0
- package/dist/jazz/public-decrypt.d.ts +48 -0
- package/dist/jazz/public-decrypt.js +156 -0
- package/dist/jazz/public-decrypt.js.map +1 -0
- package/dist/jazz/read-contract.d.ts +81 -0
- package/dist/jazz/read-contract.js +125 -0
- package/dist/jazz/read-contract.js.map +1 -0
- package/dist/jazz/types/common.d.ts +17 -0
- package/dist/jazz/types/common.js +2 -0
- package/dist/jazz/types/common.js.map +1 -0
- package/dist/jazz/types/input-proof.d.ts +76 -0
- package/dist/jazz/types/input-proof.js +2 -0
- package/dist/jazz/types/input-proof.js.map +1 -0
- package/dist/jazz/types/key-url.d.ts +68 -0
- package/dist/jazz/types/key-url.js +5 -0
- package/dist/jazz/types/key-url.js.map +1 -0
- package/dist/jazz/types/public-decrypt.d.ts +61 -0
- package/dist/jazz/types/public-decrypt.js +2 -0
- package/dist/jazz/types/public-decrypt.js.map +1 -0
- package/dist/jazz/types/user-decrypt.d.ts +123 -0
- package/dist/jazz/types/user-decrypt.js +2 -0
- package/dist/jazz/types/user-decrypt.js.map +1 -0
- package/dist/jazz/user-decrypt-p.d.ts +111 -0
- package/dist/jazz/user-decrypt-p.js +280 -0
- package/dist/jazz/user-decrypt-p.js.map +1 -0
- package/dist/jazz/user-decrypt.d.ts +74 -0
- package/dist/jazz/user-decrypt.js +143 -0
- package/dist/jazz/user-decrypt.js.map +1 -0
- package/dist/native/fhe-api.js +5959 -0
- package/dist/native/fhe-api.node.cjs +6167 -0
- package/dist/native/fhe-api.node.worker.cjs +210 -0
- package/dist/native/fhe-api.wasm +0 -0
- package/dist/native/fhe-api.worker.js +164 -0
- package/dist/native/kms/node/kms_lib.d.ts +38 -0
- package/dist/native/kms/node/kms_lib.js +356 -0
- package/dist/native/kms/node/kms_lib_bg.wasm +0 -0
- package/dist/native/kms/node/kms_lib_bg.wasm.d.ts +21 -0
- package/dist/native/kms/node/package.json +11 -0
- package/dist/native/kms/web/kms_lib.d.ts +84 -0
- package/dist/native/kms/web/kms_lib.js +443 -0
- package/dist/native/kms/web/kms_lib_bg.wasm +0 -0
- package/dist/native/kms/web/kms_lib_bg.wasm.d.ts +21 -0
- package/dist/native/kms/web/package.json +15 -0
- package/dist/runtime/browser.d.ts +36 -0
- package/dist/runtime/browser.js +115 -0
- package/dist/runtime/browser.js.map +1 -0
- package/dist/runtime/node.d.ts +30 -0
- package/dist/runtime/node.js +95 -0
- package/dist/runtime/node.js.map +1 -0
- package/dist/sdk/fhetransform-sdk-b.d.ts +102 -0
- package/dist/sdk/fhetransform-sdk-b.js +294 -0
- package/dist/sdk/fhetransform-sdk-b.js.map +1 -0
- package/dist/sdk/fhetransform-sdk.d.ts +87 -0
- package/dist/sdk/fhetransform-sdk.js +135 -0
- package/dist/sdk/fhetransform-sdk.js.map +1 -0
- package/dist/sdk/jazz-service.d.ts +13 -0
- package/dist/sdk/jazz-service.js +58 -0
- package/dist/sdk/jazz-service.js.map +1 -0
- package/dist/sdk/permit-service.d.ts +45 -0
- package/dist/sdk/permit-service.js +144 -0
- package/dist/sdk/permit-service.js.map +1 -0
- package/dist/wasm/fhe-wasm-client.d.ts +19 -0
- package/dist/wasm/fhe-wasm-client.js +23 -0
- package/dist/wasm/fhe-wasm-client.js.map +1 -0
- package/dist/wasm/fhe-wasm-module.d.ts +24 -0
- package/dist/wasm/fhe-wasm-module.js +141 -0
- package/dist/wasm/fhe-wasm-module.js.map +1 -0
- package/dist/wasm/fhe-wasm-type.d.ts +59 -0
- package/dist/wasm/fhe-wasm-type.js +244 -0
- package/dist/wasm/fhe-wasm-type.js.map +1 -0
- package/dist/wasm/wasm-loader.browser.d.ts +21 -0
- package/dist/wasm/wasm-loader.browser.js +143 -0
- package/dist/wasm/wasm-loader.browser.js.map +1 -0
- package/dist/wasm/wasm-loader.node.d.ts +24 -0
- package/dist/wasm/wasm-loader.node.js +114 -0
- package/dist/wasm/wasm-loader.node.js.map +1 -0
- package/dist/wasm/worker-client.browser.d.ts +6 -0
- package/dist/wasm/worker-client.browser.js +21 -0
- package/dist/wasm/worker-client.browser.js.map +1 -0
- package/dist/wasm/worker-client.d.ts +34 -0
- package/dist/wasm/worker-client.js +160 -0
- package/dist/wasm/worker-client.js.map +1 -0
- package/dist/wasm/worker-client.node.d.ts +6 -0
- package/dist/wasm/worker-client.node.js +20 -0
- package/dist/wasm/worker-client.node.js.map +1 -0
- package/dist/wasm/worker-message.d.ts +61 -0
- package/dist/wasm/worker-message.js +2 -0
- package/dist/wasm/worker-message.js.map +1 -0
- package/dist/wasm/worker-transport.browser.d.ts +15 -0
- package/dist/wasm/worker-transport.browser.js +35 -0
- package/dist/wasm/worker-transport.browser.js.map +1 -0
- package/dist/wasm/worker-transport.d.ts +6 -0
- package/dist/wasm/worker-transport.js +2 -0
- package/dist/wasm/worker-transport.js.map +1 -0
- package/dist/wasm/worker-transport.node.d.ts +17 -0
- package/dist/wasm/worker-transport.node.js +39 -0
- package/dist/wasm/worker-transport.node.js.map +1 -0
- package/dist/wasm/worker.d.ts +1 -0
- package/dist/wasm/worker.js +69 -0
- package/dist/wasm/worker.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { logger } from "./logger.js";
|
|
2
|
+
import { FheErrorCode } from "./errors/error-codes.js";
|
|
3
|
+
import { FheError } from "./errors/fhe-error.js";
|
|
4
|
+
/**
|
|
5
|
+
* List of supported blockchain networks with their chain ID to chain key mappings.
|
|
6
|
+
* Chain key is a compact identifier used in handle generation.
|
|
7
|
+
*/
|
|
8
|
+
export const CHAINS = [
|
|
9
|
+
{ chainId: 1n, chainKey: 1, name: "Ethereum Mainnet" },
|
|
10
|
+
{ chainId: 11155111n, chainKey: 2, name: "Ethereum Sepolia" },
|
|
11
|
+
{ chainId: 84532n, chainKey: 3, name: "Base Sepolia Testnet" },
|
|
12
|
+
{ chainId: 133n, chainKey: 4, name: "Hashkey Chain Testnet" },
|
|
13
|
+
{ chainId: 56n, chainKey: 5, name: "BNB Smart Chain Mainnet" },
|
|
14
|
+
{ chainId: 8453n, chainKey: 6, name: "Base" },
|
|
15
|
+
{ chainId: 177n, chainKey: 7, name: "HashKey Chain" },
|
|
16
|
+
{ chainId: 97n, chainKey: 8, name: "BNB Smart Chain Testnet" },
|
|
17
|
+
/* Add more chain mappings here as needed */
|
|
18
|
+
{ chainId: 31337n, chainKey: 255, name: "Hardhat or Anvil Local" },
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Map chain key to chain ID for quick lookup
|
|
22
|
+
* Created as a Map for O(1) lookup performance
|
|
23
|
+
*/
|
|
24
|
+
export const chainKeyToChainIdMap = new Map(CHAINS.map((chain) => [chain.chainKey, chain.chainId]));
|
|
25
|
+
/**
|
|
26
|
+
* Map chain ID to chain key for reverse lookup
|
|
27
|
+
* Useful for validation and debugging
|
|
28
|
+
*/
|
|
29
|
+
export const chainIdToChainKeyMap = new Map(CHAINS.map((chain) => [chain.chainId, chain.chainKey]));
|
|
30
|
+
/**
|
|
31
|
+
* Converts a blockchain chain ID to its corresponding chain key.
|
|
32
|
+
* @param chainId - Blockchain chain ID (e.g., 1n for Ethereum Mainnet)
|
|
33
|
+
* @returns The mapped chain key (uint8) used in handle generation
|
|
34
|
+
* @throws Error if the chain ID is not supported
|
|
35
|
+
*/
|
|
36
|
+
export function getChainKey(chainId) {
|
|
37
|
+
logger.debug(`Getting chain key for chainId: ${chainId.toString()}`);
|
|
38
|
+
const chainKey = chainIdToChainKeyMap.get(chainId);
|
|
39
|
+
if (chainKey === undefined) {
|
|
40
|
+
logger.error(`Unsupported chainId: ${chainId.toString()}`);
|
|
41
|
+
throw new FheError({ code: FheErrorCode.UnsupportedChain, message: `Unsupported chainId: ${chainId.toString()}` });
|
|
42
|
+
}
|
|
43
|
+
logger.trace(`Chain key for ${chainId}: ${chainKey}`);
|
|
44
|
+
return chainKey;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Builds arguments for setting chain mappings in a smart contract.
|
|
48
|
+
* @returns An object containing arrays of chain IDs and their corresponding chain keys
|
|
49
|
+
*/
|
|
50
|
+
export function buildSetChainKeysArgs() {
|
|
51
|
+
const chainIds = CHAINS.map((c) => c.chainId);
|
|
52
|
+
const chainKeys = CHAINS.map((c) => c.chainKey);
|
|
53
|
+
logger.debug(`Building chain keys args: ${chainIds.length} chains`);
|
|
54
|
+
return {
|
|
55
|
+
chainIds,
|
|
56
|
+
chainKeys,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/core/chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Number of seconds in a single day.
|
|
3
|
+
* Used as a base unit for TTL calculations across the application.
|
|
4
|
+
*/
|
|
5
|
+
export declare const SECONDS_PER_DAY: number;
|
|
6
|
+
/**
|
|
7
|
+
* Default TTL (Time-To-Live) for transport key pairs in seconds.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_TRANSPORT_KEY_PAIR_TTL_SECONDS: number;
|
|
10
|
+
/**
|
|
11
|
+
* Default TTL for permits in days.
|
|
12
|
+
*/
|
|
13
|
+
export declare const DEFAULT_PERMIT_TTL_DAYS = 30;
|
|
14
|
+
/**
|
|
15
|
+
* Default TTL for public keys in seconds.
|
|
16
|
+
*/
|
|
17
|
+
export declare const DEFAULT_PUBLIC_KEY_TTL_SECONDS: number;
|
|
18
|
+
/**
|
|
19
|
+
* Default Jazz service base URL.
|
|
20
|
+
* @description Empty string indicates that the caller must provide a valid URL at runtime.
|
|
21
|
+
* This allows flexible configuration via environment variables or runtime injection.
|
|
22
|
+
*/
|
|
23
|
+
export declare const DEFAULT_JAZZ_URL: string;
|
|
24
|
+
export declare const DB_BASE_NAME: "fhe-transform";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Number of seconds in a single day.
|
|
3
|
+
* Used as a base unit for TTL calculations across the application.
|
|
4
|
+
*/
|
|
5
|
+
export const SECONDS_PER_DAY = 1 * 24 * 60 * 60;
|
|
6
|
+
/**
|
|
7
|
+
* Default TTL (Time-To-Live) for transport key pairs in seconds.
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_TRANSPORT_KEY_PAIR_TTL_SECONDS = 30 * SECONDS_PER_DAY; // 30 Day
|
|
10
|
+
/**
|
|
11
|
+
* Default TTL for permits in days.
|
|
12
|
+
*/
|
|
13
|
+
export const DEFAULT_PERMIT_TTL_DAYS = 30; // 30 Day
|
|
14
|
+
/**
|
|
15
|
+
* Default TTL for public keys in seconds.
|
|
16
|
+
*/
|
|
17
|
+
export const DEFAULT_PUBLIC_KEY_TTL_SECONDS = 30 * SECONDS_PER_DAY; // 30 Day
|
|
18
|
+
/**
|
|
19
|
+
* Default Jazz service base URL.
|
|
20
|
+
* @description Empty string indicates that the caller must provide a valid URL at runtime.
|
|
21
|
+
* This allows flexible configuration via environment variables or runtime injection.
|
|
22
|
+
*/
|
|
23
|
+
export const DEFAULT_JAZZ_URL = "https://jazz.primuslabs.xyz";
|
|
24
|
+
export const DB_BASE_NAME = "fhe-transform";
|
|
25
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,GAAG,eAAe,CAAC,CAAC,SAAS;AAErF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,CAAC,SAAS;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,eAAe,CAAC,CAAC,SAAS;AAE7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAW,6BAA6B,CAAC;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAG,eAAwB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function toError(error) {
|
|
2
|
+
if (error instanceof Error) {
|
|
3
|
+
return error;
|
|
4
|
+
}
|
|
5
|
+
if (typeof error === "object" && error !== null && "message" in error) {
|
|
6
|
+
return new Error(String(error.message));
|
|
7
|
+
}
|
|
8
|
+
return new Error(String(error));
|
|
9
|
+
}
|
|
10
|
+
// Migration helpers: import toFheError / isFheError from here while existing
|
|
11
|
+
// call sites switch from toError incrementally. toError stays identity-
|
|
12
|
+
// preserving for backward compatibility.
|
|
13
|
+
export { isFheError, toFheError } from "./errors/error-utils.js";
|
|
14
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/core/error.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACtE,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,6EAA6E;AAC7E,wEAAwE;AACxE,yCAAyC;AACzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { FheErrorCode } from "./error-codes.js";
|
|
2
|
+
/** Serializable context attached to an error. Values must be JSON-safe. */
|
|
3
|
+
export type FheErrorContext = Record<string, unknown>;
|
|
4
|
+
export interface FheErrorCatalogEntry {
|
|
5
|
+
code: FheErrorCode;
|
|
6
|
+
severity: "error" | "warn";
|
|
7
|
+
retryable: boolean;
|
|
8
|
+
httpStatus: number;
|
|
9
|
+
messageKey: string;
|
|
10
|
+
messageTemplate: string;
|
|
11
|
+
docsUrl: string;
|
|
12
|
+
description: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Single source of truth for every error code.
|
|
16
|
+
* Defaults for retryability, HTTP status, message key, docs URL, and the
|
|
17
|
+
* human-readable message template all live here.
|
|
18
|
+
*/
|
|
19
|
+
export declare const FHE_ERROR_CATALOG: Record<FheErrorCode, FheErrorCatalogEntry>;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the catalog entry for a code. Unknown codes fall back to INTERNAL so
|
|
22
|
+
* serialization never fails on a missing entry.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getErrorCatalogEntry(code: FheErrorCode | string): FheErrorCatalogEntry;
|
|
25
|
+
/**
|
|
26
|
+
* Interpolates "{key}" placeholders from context. Missing values are left
|
|
27
|
+
* as-is so callers can spot template mismatches.
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatMessage(template: string, context?: FheErrorContext): string;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { FheErrorCode } from "./error-codes.js";
|
|
2
|
+
const DOCS_BASE = "https://docs.fhetransform.io/errors";
|
|
3
|
+
function entry(code, severity, retryable, httpStatus, messageKey, messageTemplate, description) {
|
|
4
|
+
return {
|
|
5
|
+
code,
|
|
6
|
+
severity,
|
|
7
|
+
retryable,
|
|
8
|
+
httpStatus,
|
|
9
|
+
messageKey,
|
|
10
|
+
messageTemplate,
|
|
11
|
+
docsUrl: `${DOCS_BASE}#${code}`,
|
|
12
|
+
description,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Single source of truth for every error code.
|
|
17
|
+
* Defaults for retryability, HTTP status, message key, docs URL, and the
|
|
18
|
+
* human-readable message template all live here.
|
|
19
|
+
*/
|
|
20
|
+
export const FHE_ERROR_CATALOG = {
|
|
21
|
+
[FheErrorCode.InvalidConfig]: entry(FheErrorCode.InvalidConfig, "error", false, 500, "errors.invalid_config", "Invalid SDK configuration", "The SDK was constructed with an invalid configuration."),
|
|
22
|
+
[FheErrorCode.MissingProvider]: entry(FheErrorCode.MissingProvider, "error", false, 500, "errors.missing_provider", "Provider is required but not configured", "A blockchain provider is required for this operation."),
|
|
23
|
+
[FheErrorCode.MissingSigner]: entry(FheErrorCode.MissingSigner, "error", false, 500, "errors.missing_signer", "Signer is required but not available", "A signer is required for this operation."),
|
|
24
|
+
[FheErrorCode.MissingJazzUrl]: entry(FheErrorCode.MissingJazzUrl, "error", false, 500, "errors.missing_jazz_url", "Jazz URL is required but not configured", "A Jazz service URL is required for this operation."),
|
|
25
|
+
[FheErrorCode.UnsupportedChain]: entry(FheErrorCode.UnsupportedChain, "error", false, 400, "errors.unsupported_chain", "Unsupported chain ID: {chainId}", "The chain ID is not supported by the SDK."),
|
|
26
|
+
[FheErrorCode.InvalidArgument]: entry(FheErrorCode.InvalidArgument, "error", false, 400, "errors.invalid_argument", "Invalid argument", "A function argument was invalid."),
|
|
27
|
+
[FheErrorCode.InvalidAddress]: entry(FheErrorCode.InvalidAddress, "error", false, 400, "errors.invalid_address", "Invalid address: {address}", "The address is not a valid Ethereum address."),
|
|
28
|
+
[FheErrorCode.InvalidHandle]: entry(FheErrorCode.InvalidHandle, "error", false, 400, "errors.invalid_handle", "Invalid handle: {handle}", "The ciphertext handle is not a valid 32-byte handle."),
|
|
29
|
+
[FheErrorCode.InvalidHex]: entry(FheErrorCode.InvalidHex, "error", false, 400, "errors.invalid_hex", "Invalid hex string: {value}", "The hex string is malformed."),
|
|
30
|
+
[FheErrorCode.EmptyInput]: entry(FheErrorCode.EmptyInput, "error", false, 400, "errors.empty_input", "Input cannot be empty", "The operation requires non-empty input."),
|
|
31
|
+
[FheErrorCode.Network]: entry(FheErrorCode.Network, "error", true, 502, "errors.network", "Network error", "A network-level failure occurred."),
|
|
32
|
+
[FheErrorCode.Timeout]: entry(FheErrorCode.Timeout, "error", true, 504, "errors.timeout", "Request timed out", "The request exceeded the timeout budget."),
|
|
33
|
+
[FheErrorCode.HttpError]: entry(FheErrorCode.HttpError, "error", true, 502, "errors.http", "HTTP error {status}", "The HTTP request returned an unexpected status."),
|
|
34
|
+
[FheErrorCode.RateLimited]: entry(FheErrorCode.RateLimited, "warn", true, 429, "errors.rate_limited", "Rate limited", "The upstream service rate-limited the request."),
|
|
35
|
+
[FheErrorCode.Aborted]: entry(FheErrorCode.Aborted, "warn", false, 400, "errors.aborted", "Request aborted", "The request was aborted before completion."),
|
|
36
|
+
[FheErrorCode.AuthMissing]: entry(FheErrorCode.AuthMissing, "error", false, 401, "errors.auth_missing", "Authentication is required", "Authentication credentials were not provided."),
|
|
37
|
+
[FheErrorCode.AuthInvalid]: entry(FheErrorCode.AuthInvalid, "error", false, 401, "errors.auth_invalid", "Authentication failed", "The provided authentication credentials are invalid."),
|
|
38
|
+
[FheErrorCode.PermissionDenied]: entry(FheErrorCode.PermissionDenied, "error", false, 403, "errors.permission_denied", "Permission denied", "The operation is not permitted for the caller."),
|
|
39
|
+
[FheErrorCode.JazzRequestRejected]: entry(FheErrorCode.JazzRequestRejected, "error", false, 400, "errors.jazz_request_rejected", "Jazz request rejected", "The Jazz service rejected the request."),
|
|
40
|
+
[FheErrorCode.JazzJobFailed]: entry(FheErrorCode.JazzJobFailed, "error", true, 502, "errors.jazz_job_failed", "Jazz job failed", "The asynchronous Jazz job failed."),
|
|
41
|
+
[FheErrorCode.JazzUnexpectedResponse]: entry(FheErrorCode.JazzUnexpectedResponse, "error", false, 502, "errors.jazz_unexpected_response", "Unexpected Jazz response", "The Jazz service returned an unexpected response."),
|
|
42
|
+
[FheErrorCode.EncryptionFailed]: entry(FheErrorCode.EncryptionFailed, "error", false, 500, "errors.encryption_failed", "Encryption failed", "The encryption operation failed."),
|
|
43
|
+
[FheErrorCode.DecryptionFailed]: entry(FheErrorCode.DecryptionFailed, "error", false, 500, "errors.decryption_failed", "Decryption failed", "The decryption operation failed."),
|
|
44
|
+
[FheErrorCode.KmsNotInitialized]: entry(FheErrorCode.KmsNotInitialized, "error", true, 500, "errors.kms_not_initialized", "KMS module is not initialized", "The KMS WASM module has not been initialized."),
|
|
45
|
+
[FheErrorCode.WasmNotInitialized]: entry(FheErrorCode.WasmNotInitialized, "error", true, 500, "errors.wasm_not_initialized", "WASM module is not initialized", "The FHE WASM module has not been initialized."),
|
|
46
|
+
[FheErrorCode.WasmTimeout]: entry(FheErrorCode.WasmTimeout, "error", true, 500, "errors.wasm_timeout", "WASM initialization timed out", "The FHE WASM module failed to initialize in time."),
|
|
47
|
+
[FheErrorCode.ProofVerificationFailed]: entry(FheErrorCode.ProofVerificationFailed, "error", false, 500, "errors.proof_verification_failed", "Proof verification failed", "Signature or proof verification failed."),
|
|
48
|
+
[FheErrorCode.ThresholdNotMet]: entry(FheErrorCode.ThresholdNotMet, "error", false, 500, "errors.threshold_not_met", "Recovered signatures do not meet the threshold", "Not enough valid signatures were provided."),
|
|
49
|
+
[FheErrorCode.UnknownSigner]: entry(FheErrorCode.UnknownSigner, "error", false, 500, "errors.unknown_signer", "Unknown signer detected", "A recovered signer is not in the allowed signer set."),
|
|
50
|
+
[FheErrorCode.PermitNotFound]: entry(FheErrorCode.PermitNotFound, "warn", false, 404, "errors.permit_not_found", "Permit not found in cache", "No cached permit exists for the requested scope."),
|
|
51
|
+
[FheErrorCode.PermitInvalid]: entry(FheErrorCode.PermitInvalid, "error", false, 500, "errors.permit_invalid", "Permit is invalid", "The cached permit failed validation."),
|
|
52
|
+
[FheErrorCode.KeyPairNotFound]: entry(FheErrorCode.KeyPairNotFound, "warn", false, 404, "errors.keypair_not_found", "Transport key pair not found", "No cached transport key pair exists."),
|
|
53
|
+
[FheErrorCode.CacheFailure]: entry(FheErrorCode.CacheFailure, "error", false, 500, "errors.cache_failure", "Cache operation failed", "A cache read or write failed."),
|
|
54
|
+
[FheErrorCode.CacheMiss]: entry(FheErrorCode.CacheMiss, "warn", false, 404, "errors.cache_miss", "Cache entry not found", "The requested cache entry does not exist."),
|
|
55
|
+
[FheErrorCode.TransactionReverted]: entry(FheErrorCode.TransactionReverted, "error", true, 500, "errors.tx_reverted", "Transaction reverted: {txHash}", "The submitted transaction reverted on-chain."),
|
|
56
|
+
[FheErrorCode.TransactionFailed]: entry(FheErrorCode.TransactionFailed, "error", true, 500, "errors.tx_failed", "Transaction failed", "The transaction could not be completed."),
|
|
57
|
+
[FheErrorCode.FeeEstimationFailed]: entry(FheErrorCode.FeeEstimationFailed, "error", false, 500, "errors.fee_estimation_failed", "Fee estimation failed", "The FHE fee could not be estimated."),
|
|
58
|
+
[FheErrorCode.ContractCallFailed]: entry(FheErrorCode.ContractCallFailed, "error", false, 500, "errors.contract_call_failed", "Contract call failed", "A contract call failed."),
|
|
59
|
+
[FheErrorCode.NotImplemented]: entry(FheErrorCode.NotImplemented, "error", false, 501, "errors.not_implemented", "Not implemented", "The requested functionality is not implemented."),
|
|
60
|
+
[FheErrorCode.Unsupported]: entry(FheErrorCode.Unsupported, "error", false, 400, "errors.unsupported", "Unsupported operation", "The requested operation is not supported."),
|
|
61
|
+
[FheErrorCode.Internal]: entry(FheErrorCode.Internal, "error", false, 500, "errors.internal", "Internal SDK error", "An unexpected internal error occurred."),
|
|
62
|
+
[FheErrorCode.Unknown]: entry(FheErrorCode.Unknown, "error", false, 500, "errors.unknown", "Unknown error", "An error of unknown origin occurred."),
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Returns the catalog entry for a code. Unknown codes fall back to INTERNAL so
|
|
66
|
+
* serialization never fails on a missing entry.
|
|
67
|
+
*/
|
|
68
|
+
export function getErrorCatalogEntry(code) {
|
|
69
|
+
return FHE_ERROR_CATALOG[code] ?? FHE_ERROR_CATALOG[FheErrorCode.Internal];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Interpolates "{key}" placeholders from context. Missing values are left
|
|
73
|
+
* as-is so callers can spot template mismatches.
|
|
74
|
+
*/
|
|
75
|
+
export function formatMessage(template, context) {
|
|
76
|
+
if (!context) {
|
|
77
|
+
return template;
|
|
78
|
+
}
|
|
79
|
+
return template.replace(/\{(\w+)\}/g, (match, key) => {
|
|
80
|
+
const value = context[key];
|
|
81
|
+
return value === undefined || value === null ? match : String(value);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=error-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-catalog.js","sourceRoot":"","sources":["../../../src/core/errors/error-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable, machine-readable error identifiers.
|
|
3
|
+
*
|
|
4
|
+
* Codes are UPPER_SNAKE strings grouped by domain. They are part of the
|
|
5
|
+
* public contract: clients switch on these values, so a code must never be
|
|
6
|
+
* renamed or reused for a different meaning after release.
|
|
7
|
+
*/
|
|
8
|
+
export declare const FheErrorCode: {
|
|
9
|
+
readonly InvalidConfig: "CONFIG_INVALID";
|
|
10
|
+
readonly MissingProvider: "CONFIG_MISSING_PROVIDER";
|
|
11
|
+
readonly MissingSigner: "CONFIG_MISSING_SIGNER";
|
|
12
|
+
readonly MissingJazzUrl: "CONFIG_MISSING_JAZZ_URL";
|
|
13
|
+
readonly UnsupportedChain: "CHAIN_UNSUPPORTED";
|
|
14
|
+
readonly InvalidArgument: "VALIDATION_INVALID_ARGUMENT";
|
|
15
|
+
readonly InvalidAddress: "VALIDATION_INVALID_ADDRESS";
|
|
16
|
+
readonly InvalidHandle: "VALIDATION_INVALID_HANDLE";
|
|
17
|
+
readonly InvalidHex: "VALIDATION_INVALID_HEX";
|
|
18
|
+
readonly EmptyInput: "VALIDATION_EMPTY_INPUT";
|
|
19
|
+
readonly Network: "NETWORK_ERROR";
|
|
20
|
+
readonly Timeout: "NETWORK_TIMEOUT";
|
|
21
|
+
readonly HttpError: "NETWORK_HTTP";
|
|
22
|
+
readonly RateLimited: "NETWORK_RATE_LIMITED";
|
|
23
|
+
readonly Aborted: "NETWORK_ABORTED";
|
|
24
|
+
readonly AuthMissing: "AUTH_MISSING";
|
|
25
|
+
readonly AuthInvalid: "AUTH_INVALID";
|
|
26
|
+
readonly PermissionDenied: "AUTH_PERMISSION_DENIED";
|
|
27
|
+
readonly JazzRequestRejected: "JAZZ_REQUEST_REJECTED";
|
|
28
|
+
readonly JazzJobFailed: "JAZZ_JOB_FAILED";
|
|
29
|
+
readonly JazzUnexpectedResponse: "JAZZ_UNEXPECTED_RESPONSE";
|
|
30
|
+
readonly EncryptionFailed: "ENCRYPTION_FAILED";
|
|
31
|
+
readonly DecryptionFailed: "DECRYPTION_FAILED";
|
|
32
|
+
readonly KmsNotInitialized: "KMS_NOT_INITIALIZED";
|
|
33
|
+
readonly WasmNotInitialized: "WASM_NOT_INITIALIZED";
|
|
34
|
+
readonly WasmTimeout: "WASM_INIT_TIMEOUT";
|
|
35
|
+
readonly ProofVerificationFailed: "PROOF_VERIFICATION_FAILED";
|
|
36
|
+
readonly ThresholdNotMet: "THRESHOLD_NOT_MET";
|
|
37
|
+
readonly UnknownSigner: "SIGNER_UNKNOWN";
|
|
38
|
+
readonly PermitNotFound: "PERMIT_NOT_FOUND";
|
|
39
|
+
readonly PermitInvalid: "PERMIT_INVALID";
|
|
40
|
+
readonly KeyPairNotFound: "KEYPAIR_NOT_FOUND";
|
|
41
|
+
readonly CacheFailure: "CACHE_FAILURE";
|
|
42
|
+
readonly CacheMiss: "CACHE_MISS";
|
|
43
|
+
readonly TransactionReverted: "TX_REVERTED";
|
|
44
|
+
readonly TransactionFailed: "TX_FAILED";
|
|
45
|
+
readonly FeeEstimationFailed: "FEE_ESTIMATION_FAILED";
|
|
46
|
+
readonly ContractCallFailed: "CONTRACT_CALL_FAILED";
|
|
47
|
+
readonly NotImplemented: "NOT_IMPLEMENTED";
|
|
48
|
+
readonly Unsupported: "UNSUPPORTED";
|
|
49
|
+
readonly Internal: "INTERNAL";
|
|
50
|
+
readonly Unknown: "UNKNOWN";
|
|
51
|
+
};
|
|
52
|
+
export type FheErrorCode = (typeof FheErrorCode)[keyof typeof FheErrorCode];
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable, machine-readable error identifiers.
|
|
3
|
+
*
|
|
4
|
+
* Codes are UPPER_SNAKE strings grouped by domain. They are part of the
|
|
5
|
+
* public contract: clients switch on these values, so a code must never be
|
|
6
|
+
* renamed or reused for a different meaning after release.
|
|
7
|
+
*/
|
|
8
|
+
export const FheErrorCode = {
|
|
9
|
+
// Configuration / construction
|
|
10
|
+
InvalidConfig: "CONFIG_INVALID",
|
|
11
|
+
MissingProvider: "CONFIG_MISSING_PROVIDER",
|
|
12
|
+
MissingSigner: "CONFIG_MISSING_SIGNER",
|
|
13
|
+
MissingJazzUrl: "CONFIG_MISSING_JAZZ_URL",
|
|
14
|
+
UnsupportedChain: "CHAIN_UNSUPPORTED",
|
|
15
|
+
// Input validation
|
|
16
|
+
InvalidArgument: "VALIDATION_INVALID_ARGUMENT",
|
|
17
|
+
InvalidAddress: "VALIDATION_INVALID_ADDRESS",
|
|
18
|
+
InvalidHandle: "VALIDATION_INVALID_HANDLE",
|
|
19
|
+
InvalidHex: "VALIDATION_INVALID_HEX",
|
|
20
|
+
EmptyInput: "VALIDATION_EMPTY_INPUT",
|
|
21
|
+
// Network / transport
|
|
22
|
+
Network: "NETWORK_ERROR",
|
|
23
|
+
Timeout: "NETWORK_TIMEOUT",
|
|
24
|
+
HttpError: "NETWORK_HTTP",
|
|
25
|
+
RateLimited: "NETWORK_RATE_LIMITED",
|
|
26
|
+
Aborted: "NETWORK_ABORTED",
|
|
27
|
+
// Authentication / authorization
|
|
28
|
+
AuthMissing: "AUTH_MISSING",
|
|
29
|
+
AuthInvalid: "AUTH_INVALID",
|
|
30
|
+
PermissionDenied: "AUTH_PERMISSION_DENIED",
|
|
31
|
+
// Jazz / API protocol
|
|
32
|
+
JazzRequestRejected: "JAZZ_REQUEST_REJECTED",
|
|
33
|
+
JazzJobFailed: "JAZZ_JOB_FAILED",
|
|
34
|
+
JazzUnexpectedResponse: "JAZZ_UNEXPECTED_RESPONSE",
|
|
35
|
+
// Crypto / FHE
|
|
36
|
+
EncryptionFailed: "ENCRYPTION_FAILED",
|
|
37
|
+
DecryptionFailed: "DECRYPTION_FAILED",
|
|
38
|
+
KmsNotInitialized: "KMS_NOT_INITIALIZED",
|
|
39
|
+
WasmNotInitialized: "WASM_NOT_INITIALIZED",
|
|
40
|
+
WasmTimeout: "WASM_INIT_TIMEOUT",
|
|
41
|
+
ProofVerificationFailed: "PROOF_VERIFICATION_FAILED",
|
|
42
|
+
ThresholdNotMet: "THRESHOLD_NOT_MET",
|
|
43
|
+
UnknownSigner: "SIGNER_UNKNOWN",
|
|
44
|
+
// Permits / keys
|
|
45
|
+
PermitNotFound: "PERMIT_NOT_FOUND",
|
|
46
|
+
PermitInvalid: "PERMIT_INVALID",
|
|
47
|
+
KeyPairNotFound: "KEYPAIR_NOT_FOUND",
|
|
48
|
+
CacheFailure: "CACHE_FAILURE",
|
|
49
|
+
CacheMiss: "CACHE_MISS",
|
|
50
|
+
// On-chain
|
|
51
|
+
TransactionReverted: "TX_REVERTED",
|
|
52
|
+
TransactionFailed: "TX_FAILED",
|
|
53
|
+
FeeEstimationFailed: "FEE_ESTIMATION_FAILED",
|
|
54
|
+
ContractCallFailed: "CONTRACT_CALL_FAILED",
|
|
55
|
+
// General
|
|
56
|
+
NotImplemented: "NOT_IMPLEMENTED",
|
|
57
|
+
Unsupported: "UNSUPPORTED",
|
|
58
|
+
Internal: "INTERNAL",
|
|
59
|
+
Unknown: "UNKNOWN",
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=error-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../../../src/core/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,+BAA+B;IAC/B,aAAa,EAAE,gBAAgB;IAC/B,eAAe,EAAE,yBAAyB;IAC1C,aAAa,EAAE,uBAAuB;IACtC,cAAc,EAAE,yBAAyB;IACzC,gBAAgB,EAAE,mBAAmB;IAErC,mBAAmB;IACnB,eAAe,EAAE,6BAA6B;IAC9C,cAAc,EAAE,4BAA4B;IAC5C,aAAa,EAAE,2BAA2B;IAC1C,UAAU,EAAE,wBAAwB;IACpC,UAAU,EAAE,wBAAwB;IAEpC,sBAAsB;IACtB,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,iBAAiB;IAC1B,SAAS,EAAE,cAAc;IACzB,WAAW,EAAE,sBAAsB;IACnC,OAAO,EAAE,iBAAiB;IAE1B,iCAAiC;IACjC,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,cAAc;IAC3B,gBAAgB,EAAE,wBAAwB;IAE1C,sBAAsB;IACtB,mBAAmB,EAAE,uBAAuB;IAC5C,aAAa,EAAE,iBAAiB;IAChC,sBAAsB,EAAE,0BAA0B;IAElD,eAAe;IACf,gBAAgB,EAAE,mBAAmB;IACrC,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,qBAAqB;IACxC,kBAAkB,EAAE,sBAAsB;IAC1C,WAAW,EAAE,mBAAmB;IAChC,uBAAuB,EAAE,2BAA2B;IACpD,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,gBAAgB;IAE/B,iBAAiB;IACjB,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,gBAAgB;IAC/B,eAAe,EAAE,mBAAmB;IACpC,YAAY,EAAE,eAAe;IAC7B,SAAS,EAAE,YAAY;IAEvB,WAAW;IACX,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,WAAW;IAC9B,mBAAmB,EAAE,uBAAuB;IAC5C,kBAAkB,EAAE,sBAAsB;IAE1C,UAAU;IACV,cAAc,EAAE,iBAAiB;IACjC,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACV,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { FheErrorContext } from "./error-catalog.js";
|
|
2
|
+
import { FheError, FheErrorOptions } from "./fhe-error.js";
|
|
3
|
+
/**
|
|
4
|
+
* Wraps any thrown value into an FheError.
|
|
5
|
+
*
|
|
6
|
+
* - Already-FheError values are returned unchanged.
|
|
7
|
+
* - Plain Error instances become INTERNAL errors with the original as cause.
|
|
8
|
+
* - Message-like objects and primitives are stringified.
|
|
9
|
+
*/
|
|
10
|
+
export declare function toFheError(error: unknown, options?: Partial<FheErrorOptions>): FheError;
|
|
11
|
+
export declare function isFheError(error: unknown): error is FheError;
|
|
12
|
+
export declare function getErrorCode(error: unknown): string;
|
|
13
|
+
export declare function getErrorMessage(error: unknown): string;
|
|
14
|
+
export interface ErrorRetryPolicy {
|
|
15
|
+
retryable: boolean;
|
|
16
|
+
retryAfterMs?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Single retry decision point. FheErrors carry their retryability directly;
|
|
20
|
+
* legacy errors fall back to a conservative non-retryable answer.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getErrorRetryPolicy(error: unknown): ErrorRetryPolicy;
|
|
23
|
+
/**
|
|
24
|
+
* Wraps an async operation, attaching operation/context on failure.
|
|
25
|
+
* Existing FheErrors with an operation are rethrown unchanged.
|
|
26
|
+
*/
|
|
27
|
+
export declare function withFheError<T>(operation: string, fn: () => Promise<T>, context?: FheErrorContext, debugContext?: FheErrorContext): Promise<T>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { FheErrorCode } from "./error-codes.js";
|
|
2
|
+
import { FheError } from "./fhe-error.js";
|
|
3
|
+
/**
|
|
4
|
+
* Wraps any thrown value into an FheError.
|
|
5
|
+
*
|
|
6
|
+
* - Already-FheError values are returned unchanged.
|
|
7
|
+
* - Plain Error instances become INTERNAL errors with the original as cause.
|
|
8
|
+
* - Message-like objects and primitives are stringified.
|
|
9
|
+
*/
|
|
10
|
+
export function toFheError(error, options) {
|
|
11
|
+
if (isFheError(error)) {
|
|
12
|
+
return error;
|
|
13
|
+
}
|
|
14
|
+
if (error instanceof Error) {
|
|
15
|
+
return new FheError({
|
|
16
|
+
code: options?.code ?? FheErrorCode.Internal,
|
|
17
|
+
message: options?.message ?? error.message,
|
|
18
|
+
cause: error,
|
|
19
|
+
context: options?.context,
|
|
20
|
+
debugContext: options?.debugContext,
|
|
21
|
+
operation: options?.operation,
|
|
22
|
+
operationId: options?.operationId,
|
|
23
|
+
retryable: options?.retryable,
|
|
24
|
+
retryAfterMs: options?.retryAfterMs,
|
|
25
|
+
captureStack: options?.captureStack,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (typeof error === "object" && error !== null && "message" in error) {
|
|
29
|
+
const message = String(error.message);
|
|
30
|
+
return new FheError({
|
|
31
|
+
code: options?.code ?? FheErrorCode.Internal,
|
|
32
|
+
message: options?.message ?? message,
|
|
33
|
+
cause: error,
|
|
34
|
+
context: options?.context,
|
|
35
|
+
debugContext: options?.debugContext,
|
|
36
|
+
operation: options?.operation,
|
|
37
|
+
operationId: options?.operationId,
|
|
38
|
+
retryable: options?.retryable,
|
|
39
|
+
retryAfterMs: options?.retryAfterMs,
|
|
40
|
+
captureStack: options?.captureStack,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return new FheError({
|
|
44
|
+
code: options?.code ?? FheErrorCode.Unknown,
|
|
45
|
+
message: options?.message ?? String(error),
|
|
46
|
+
cause: error,
|
|
47
|
+
context: options?.context,
|
|
48
|
+
debugContext: options?.debugContext,
|
|
49
|
+
operation: options?.operation,
|
|
50
|
+
operationId: options?.operationId,
|
|
51
|
+
retryable: options?.retryable,
|
|
52
|
+
retryAfterMs: options?.retryAfterMs,
|
|
53
|
+
captureStack: options?.captureStack,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
export function isFheError(error) {
|
|
57
|
+
return error instanceof FheError;
|
|
58
|
+
}
|
|
59
|
+
export function getErrorCode(error) {
|
|
60
|
+
return isFheError(error) ? error.code : FheErrorCode.Unknown;
|
|
61
|
+
}
|
|
62
|
+
export function getErrorMessage(error) {
|
|
63
|
+
if (error instanceof Error) {
|
|
64
|
+
return error.message;
|
|
65
|
+
}
|
|
66
|
+
if (typeof error === "object" && error !== null && "message" in error) {
|
|
67
|
+
return String(error.message);
|
|
68
|
+
}
|
|
69
|
+
return String(error);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Single retry decision point. FheErrors carry their retryability directly;
|
|
73
|
+
* legacy errors fall back to a conservative non-retryable answer.
|
|
74
|
+
*/
|
|
75
|
+
export function getErrorRetryPolicy(error) {
|
|
76
|
+
if (isFheError(error)) {
|
|
77
|
+
return { retryable: error.retryable, retryAfterMs: error.retryAfterMs };
|
|
78
|
+
}
|
|
79
|
+
return { retryable: false };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Wraps an async operation, attaching operation/context on failure.
|
|
83
|
+
* Existing FheErrors with an operation are rethrown unchanged.
|
|
84
|
+
*/
|
|
85
|
+
export async function withFheError(operation, fn, context, debugContext) {
|
|
86
|
+
try {
|
|
87
|
+
return await fn();
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
if (isFheError(error)) {
|
|
91
|
+
if (error.operation) {
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
throw new FheError({
|
|
95
|
+
code: error.code,
|
|
96
|
+
message: error.message,
|
|
97
|
+
context: { ...error.context, ...context },
|
|
98
|
+
debugContext: { ...error.debugContext, ...debugContext },
|
|
99
|
+
cause: error.cause,
|
|
100
|
+
operation,
|
|
101
|
+
operationId: error.operationId,
|
|
102
|
+
retryable: error.retryable,
|
|
103
|
+
retryAfterMs: error.retryAfterMs,
|
|
104
|
+
captureStack: error.captureStack,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
throw toFheError(error, { operation, context, debugContext });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=error-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../../../src/core/errors/error-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { FheErrorCode } from "./error-codes.js";
|
|
2
|
+
import { FheErrorContext } from "./error-catalog.js";
|
|
3
|
+
export interface FheErrorOptions {
|
|
4
|
+
code: FheErrorCode;
|
|
5
|
+
/** Overrides the catalog message template; usually omitted. */
|
|
6
|
+
message?: string;
|
|
7
|
+
/** Public context - sanitized, frozen, and serialized. */
|
|
8
|
+
context?: FheErrorContext;
|
|
9
|
+
/** Debug context - rich data that never appears in the public payload. */
|
|
10
|
+
debugContext?: FheErrorContext;
|
|
11
|
+
cause?: unknown;
|
|
12
|
+
operation?: string;
|
|
13
|
+
operationId?: string;
|
|
14
|
+
/** Overrides the catalog retryable default. */
|
|
15
|
+
retryable?: boolean;
|
|
16
|
+
retryAfterMs?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Controls whether the stack trace is included in `toJSON()`.
|
|
19
|
+
* Defaults to enabled outside production builds.
|
|
20
|
+
*/
|
|
21
|
+
captureStack?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface SanitizedCause {
|
|
24
|
+
name?: string;
|
|
25
|
+
code?: string;
|
|
26
|
+
message: string;
|
|
27
|
+
}
|
|
28
|
+
export interface FheErrorPayload {
|
|
29
|
+
error: {
|
|
30
|
+
name: "FheError";
|
|
31
|
+
code: string;
|
|
32
|
+
message: string;
|
|
33
|
+
messageKey: string;
|
|
34
|
+
operation?: string;
|
|
35
|
+
operationId?: string;
|
|
36
|
+
context?: FheErrorContext;
|
|
37
|
+
retryable: boolean;
|
|
38
|
+
retryAfterMs?: number;
|
|
39
|
+
docsUrl: string;
|
|
40
|
+
httpStatus: number;
|
|
41
|
+
cause?: SanitizedCause;
|
|
42
|
+
stack?: string;
|
|
43
|
+
timestamp: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Unified, production-ready SDK error.
|
|
48
|
+
*
|
|
49
|
+
* Every SDK failure should surface as an FheError so clients can switch on
|
|
50
|
+
* `code` instead of matching message text. The serialized payload is JSON-safe
|
|
51
|
+
* and deliberately never contains secrets or debug-only context.
|
|
52
|
+
*/
|
|
53
|
+
export declare class FheError extends Error {
|
|
54
|
+
readonly code: FheErrorCode;
|
|
55
|
+
readonly messageKey: string;
|
|
56
|
+
readonly docsUrl: string;
|
|
57
|
+
readonly httpStatus: number;
|
|
58
|
+
readonly retryable: boolean;
|
|
59
|
+
readonly retryAfterMs?: number;
|
|
60
|
+
readonly operation?: string;
|
|
61
|
+
readonly operationId?: string;
|
|
62
|
+
readonly context: Readonly<FheErrorContext> | undefined;
|
|
63
|
+
readonly debugContext: Readonly<FheErrorContext> | undefined;
|
|
64
|
+
readonly captureStack: boolean;
|
|
65
|
+
readonly timestamp: string;
|
|
66
|
+
private _causeChain?;
|
|
67
|
+
private _public?;
|
|
68
|
+
private _full?;
|
|
69
|
+
constructor(options: FheErrorOptions);
|
|
70
|
+
/**
|
|
71
|
+
* Full envelope including the stack trace when captureStack is enabled.
|
|
72
|
+
* The result is memoized per instance.
|
|
73
|
+
*/
|
|
74
|
+
toJSON(): FheErrorPayload;
|
|
75
|
+
/**
|
|
76
|
+
* Sanitized payload without stack traces or debug context. Safe to expose
|
|
77
|
+
* to external clients and APIs. Memoized per instance.
|
|
78
|
+
*/
|
|
79
|
+
getPublicPayload(): FheErrorPayload["error"];
|
|
80
|
+
/** HTTP boundary helper: maps the error to a status code and JSON body. */
|
|
81
|
+
toHttpResponse(): {
|
|
82
|
+
status: number;
|
|
83
|
+
body: FheErrorPayload;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Lazy, cycle-safe cause chain (immediate cause first), capped at
|
|
87
|
+
* MAX_CAUSE_DEPTH. Memoized per instance.
|
|
88
|
+
*/
|
|
89
|
+
getCauseChain(): SanitizedCause[];
|
|
90
|
+
static invalidArgument(context?: FheErrorContext, cause?: unknown): FheError;
|
|
91
|
+
static network(cause?: unknown, context?: FheErrorContext): FheError;
|
|
92
|
+
static transactionReverted(context: FheErrorContext & {
|
|
93
|
+
txHash?: string;
|
|
94
|
+
}, cause?: unknown): FheError;
|
|
95
|
+
static permissionDenied(context?: FheErrorContext): FheError;
|
|
96
|
+
static internal(cause?: unknown, context?: FheErrorContext): FheError;
|
|
97
|
+
static notImplemented(context?: FheErrorContext): FheError;
|
|
98
|
+
}
|