@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,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration options for the CacheManager.
|
|
3
|
+
*/
|
|
4
|
+
export interface CacheOptions {
|
|
5
|
+
/** Base name for IndexedDB storage */
|
|
6
|
+
baseName?: string;
|
|
7
|
+
/** Store name for IndexedDB storage */
|
|
8
|
+
storeName?: string;
|
|
9
|
+
/** IndexedDB database name */
|
|
10
|
+
dbName?: string;
|
|
11
|
+
/** Storage directory for Node.js environment */
|
|
12
|
+
baseDir?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Cache entry structure containing data and timestamp metadata.
|
|
16
|
+
*/
|
|
17
|
+
export interface CacheEntry {
|
|
18
|
+
/** The cached data as a string */
|
|
19
|
+
data: string;
|
|
20
|
+
/** Unix timestamp (seconds) when the entry was created */
|
|
21
|
+
timestamp: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* CacheManager - Universal caching layer supporting both binary and string data.
|
|
25
|
+
*
|
|
26
|
+
* Features:
|
|
27
|
+
* - Binary and string data storage
|
|
28
|
+
* - TTL-based expiration checks
|
|
29
|
+
* - Lazy storage initialization
|
|
30
|
+
* - Cross-platform support (Node.js filesystem, browser IndexedDB)
|
|
31
|
+
* - Batch operations (list, clear, delete)
|
|
32
|
+
*/
|
|
33
|
+
export declare class CacheManager {
|
|
34
|
+
private options;
|
|
35
|
+
private storage;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new CacheManager instance.
|
|
38
|
+
* @param options - Cache configuration options
|
|
39
|
+
*/
|
|
40
|
+
constructor(options?: CacheOptions);
|
|
41
|
+
/**
|
|
42
|
+
* Saves data to the cache.
|
|
43
|
+
* Binary data (Uint8Array) is stored raw with separate metadata.
|
|
44
|
+
* String data is stored as a CacheEntry with timestamp.
|
|
45
|
+
*
|
|
46
|
+
* @param key - Cache key
|
|
47
|
+
* @param data - Data to cache (Uint8Array or string)
|
|
48
|
+
* @returns Promise that resolves when save is complete
|
|
49
|
+
* @throws Error if storage operation fails
|
|
50
|
+
*/
|
|
51
|
+
save(key: string, data: Uint8Array | string): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Loads data from the cache, returning either binary or string data.
|
|
54
|
+
* Checks raw storage first for binary data, then falls back to CacheEntry/string.
|
|
55
|
+
*
|
|
56
|
+
* @param key - Cache key
|
|
57
|
+
* @returns Cached data as Uint8Array or string, or null if not found
|
|
58
|
+
*/
|
|
59
|
+
load(key: string): Promise<Uint8Array | string | null>;
|
|
60
|
+
/**
|
|
61
|
+
* Loads string data from the cache.
|
|
62
|
+
* Convenience method for string-only access.
|
|
63
|
+
*
|
|
64
|
+
* @param key - Cache key
|
|
65
|
+
* @returns Cached string data, or null if not found or not a string
|
|
66
|
+
*/
|
|
67
|
+
loadString(key: string): Promise<string | null>;
|
|
68
|
+
/**
|
|
69
|
+
* Loads binary data from the cache.
|
|
70
|
+
* Convenience method for binary-only access.
|
|
71
|
+
*
|
|
72
|
+
* @param key - Cache key
|
|
73
|
+
* @returns Cached binary data as Uint8Array, or null if not found
|
|
74
|
+
*/
|
|
75
|
+
loadBytes(key: string): Promise<Uint8Array | null>;
|
|
76
|
+
/**
|
|
77
|
+
* Determines whether the cache should be refreshed (missing or expired).
|
|
78
|
+
*
|
|
79
|
+
* @param key - The cache key to check
|
|
80
|
+
* @param ttl - Time-to-live in seconds
|
|
81
|
+
* @returns true if cache should be refreshed, false if still valid
|
|
82
|
+
*/
|
|
83
|
+
shouldRefresh(key: string, ttl: number): Promise<boolean>;
|
|
84
|
+
/**
|
|
85
|
+
* Deletes a specific cache entry and its associated metadata.
|
|
86
|
+
*
|
|
87
|
+
* @param key - Cache key to delete
|
|
88
|
+
* @returns Promise that resolves when deletion is complete
|
|
89
|
+
*/
|
|
90
|
+
delete(key: string): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Lists all cache keys matching an optional prefix.
|
|
93
|
+
*
|
|
94
|
+
* @param base - Optional prefix to filter keys
|
|
95
|
+
* @returns Array of cache keys
|
|
96
|
+
*/
|
|
97
|
+
listKeys(base?: string): Promise<string[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Clears all cache entries with an optional prefix.
|
|
100
|
+
* Deletes both main entries and their metadata counterparts.
|
|
101
|
+
*
|
|
102
|
+
* @param base - Optional prefix to filter keys for clearing
|
|
103
|
+
* @returns Promise that resolves when clear is complete
|
|
104
|
+
*/
|
|
105
|
+
clear(base?: string): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Lazy-initializes and returns the storage instance.
|
|
108
|
+
* Storage is created once and reused for all operations.
|
|
109
|
+
*
|
|
110
|
+
* @returns The initialized Storage instance
|
|
111
|
+
* @throws Error if storage initialization fails
|
|
112
|
+
*/
|
|
113
|
+
private getStorage;
|
|
114
|
+
/**
|
|
115
|
+
* Initializes the storage backend based on the runtime environment.
|
|
116
|
+
* Uses #runtime to select the appropriate driver (Node.js fs or browser IndexedDB).
|
|
117
|
+
*
|
|
118
|
+
* @param options - Cache configuration options
|
|
119
|
+
* @returns Configured Storage instance
|
|
120
|
+
* @throws Error if driver creation fails
|
|
121
|
+
*/
|
|
122
|
+
private initStorage;
|
|
123
|
+
/**
|
|
124
|
+
* Type guard for validating CacheEntry objects.
|
|
125
|
+
*
|
|
126
|
+
* @param value - Value to check
|
|
127
|
+
* @returns true if value is a valid CacheEntry
|
|
128
|
+
*/
|
|
129
|
+
private isCacheEntry;
|
|
130
|
+
/**
|
|
131
|
+
* Checks if a timestamp has expired relative to the maximum age (in seconds).
|
|
132
|
+
*
|
|
133
|
+
* @param timestamp - Unix timestamp (seconds) when entry was created
|
|
134
|
+
* @param maxAge - Maximum age in seconds
|
|
135
|
+
* @returns true if the entry has expired
|
|
136
|
+
*/
|
|
137
|
+
private isExpired;
|
|
138
|
+
}
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
import { createStorage } from 'unstorage';
|
|
2
|
+
import { logger } from './logger.js';
|
|
3
|
+
import { createCacheDriver, getDbBaseNameScope } from '#runtime';
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// CacheManager Class
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/**
|
|
8
|
+
* CacheManager - Universal caching layer supporting both binary and string data.
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Binary and string data storage
|
|
12
|
+
* - TTL-based expiration checks
|
|
13
|
+
* - Lazy storage initialization
|
|
14
|
+
* - Cross-platform support (Node.js filesystem, browser IndexedDB)
|
|
15
|
+
* - Batch operations (list, clear, delete)
|
|
16
|
+
*/
|
|
17
|
+
export class CacheManager {
|
|
18
|
+
options;
|
|
19
|
+
storage = null;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a new CacheManager instance.
|
|
22
|
+
* @param options - Cache configuration options
|
|
23
|
+
*/
|
|
24
|
+
constructor(options = {}) {
|
|
25
|
+
this.options = { ...options };
|
|
26
|
+
logger.debug('[CacheManager] Instance created', { options: this.options });
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Saves data to the cache.
|
|
30
|
+
* Binary data (Uint8Array) is stored raw with separate metadata.
|
|
31
|
+
* String data is stored as a CacheEntry with timestamp.
|
|
32
|
+
*
|
|
33
|
+
* @param key - Cache key
|
|
34
|
+
* @param data - Data to cache (Uint8Array or string)
|
|
35
|
+
* @returns Promise that resolves when save is complete
|
|
36
|
+
* @throws Error if storage operation fails
|
|
37
|
+
*/
|
|
38
|
+
async save(key, data) {
|
|
39
|
+
// Get storage instance (lazy init)
|
|
40
|
+
const storage = await this.getStorage();
|
|
41
|
+
const timestamp = Math.floor(Date.now() / 1000);
|
|
42
|
+
const isBinary = data instanceof Uint8Array;
|
|
43
|
+
logger.debug('[CacheManager.save] Saving cache entry', {
|
|
44
|
+
key,
|
|
45
|
+
type: isBinary ? 'binary' : 'string',
|
|
46
|
+
size: data.length,
|
|
47
|
+
});
|
|
48
|
+
try {
|
|
49
|
+
if (isBinary) {
|
|
50
|
+
// Store raw binary data and its metadata separately
|
|
51
|
+
logger.trace('[CacheManager.save] Storing binary data with metadata', { key });
|
|
52
|
+
await storage.setItemRaw(key, data);
|
|
53
|
+
await storage.setItem(`${key}.meta`, { timestamp });
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Store string data as a CacheEntry
|
|
57
|
+
logger.trace('[CacheManager.save] Storing string data as CacheEntry', { key });
|
|
58
|
+
await storage.setItem(key, { data, timestamp });
|
|
59
|
+
}
|
|
60
|
+
logger.debug('[CacheManager.save] Cache saved successfully', { key, size: data.length });
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
logger.error('[CacheManager.save] Failed to save cache', {
|
|
64
|
+
key,
|
|
65
|
+
type: isBinary ? 'binary' : 'string',
|
|
66
|
+
error: error.message,
|
|
67
|
+
stack: error.stack,
|
|
68
|
+
});
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Loads data from the cache, returning either binary or string data.
|
|
74
|
+
* Checks raw storage first for binary data, then falls back to CacheEntry/string.
|
|
75
|
+
*
|
|
76
|
+
* @param key - Cache key
|
|
77
|
+
* @returns Cached data as Uint8Array or string, or null if not found
|
|
78
|
+
*/
|
|
79
|
+
async load(key) {
|
|
80
|
+
const storage = await this.getStorage();
|
|
81
|
+
logger.debug('[CacheManager.load] Loading cache entry', { key });
|
|
82
|
+
try {
|
|
83
|
+
// Attempt to read raw binary data first
|
|
84
|
+
const rawData = await storage.getItemRaw(key);
|
|
85
|
+
if (rawData instanceof Uint8Array) {
|
|
86
|
+
logger.debug('[CacheManager.load] Cache loaded (binary)', {
|
|
87
|
+
key,
|
|
88
|
+
size: rawData.length,
|
|
89
|
+
});
|
|
90
|
+
return rawData;
|
|
91
|
+
}
|
|
92
|
+
// Attempt to read as CacheEntry or plain string
|
|
93
|
+
const entry = await storage.getItem(key);
|
|
94
|
+
if (!entry) {
|
|
95
|
+
logger.debug('[CacheManager.load] Cache miss', { key });
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
// Return data field if in CacheEntry format
|
|
99
|
+
if (this.isCacheEntry(entry)) {
|
|
100
|
+
logger.debug('[CacheManager.load] Cache loaded (CacheEntry)', {
|
|
101
|
+
key,
|
|
102
|
+
dataLength: entry.data.length,
|
|
103
|
+
});
|
|
104
|
+
return entry.data;
|
|
105
|
+
}
|
|
106
|
+
// Return directly if in plain string format (backward compatibility)
|
|
107
|
+
if (typeof entry === 'string') {
|
|
108
|
+
logger.debug('[CacheManager.load] Cache loaded (string)', {
|
|
109
|
+
key,
|
|
110
|
+
size: entry.length,
|
|
111
|
+
});
|
|
112
|
+
return entry;
|
|
113
|
+
}
|
|
114
|
+
logger.warn('[CacheManager.load] Invalid cache format', { key, type: typeof entry });
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
logger.error('[CacheManager.load] Failed to load cache', {
|
|
119
|
+
key,
|
|
120
|
+
error: error.message,
|
|
121
|
+
stack: error.stack,
|
|
122
|
+
});
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Loads string data from the cache.
|
|
128
|
+
* Convenience method for string-only access.
|
|
129
|
+
*
|
|
130
|
+
* @param key - Cache key
|
|
131
|
+
* @returns Cached string data, or null if not found or not a string
|
|
132
|
+
*/
|
|
133
|
+
async loadString(key) {
|
|
134
|
+
const storage = await this.getStorage();
|
|
135
|
+
logger.debug('[CacheManager.loadString] Loading string cache', { key });
|
|
136
|
+
try {
|
|
137
|
+
const entry = await storage.getItem(key);
|
|
138
|
+
if (!entry) {
|
|
139
|
+
logger.debug('[CacheManager.loadString] Cache miss', { key });
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
if (this.isCacheEntry(entry)) {
|
|
143
|
+
logger.debug('[CacheManager.loadString] Cache loaded (CacheEntry)', {
|
|
144
|
+
key,
|
|
145
|
+
dataLength: entry.data.length,
|
|
146
|
+
});
|
|
147
|
+
return entry.data;
|
|
148
|
+
}
|
|
149
|
+
if (typeof entry === 'string') {
|
|
150
|
+
logger.debug('[CacheManager.loadString] Cache loaded (string)', {
|
|
151
|
+
key,
|
|
152
|
+
size: entry.length,
|
|
153
|
+
});
|
|
154
|
+
return entry;
|
|
155
|
+
}
|
|
156
|
+
logger.warn('[CacheManager.loadString] Invalid format for string', {
|
|
157
|
+
key,
|
|
158
|
+
type: typeof entry,
|
|
159
|
+
});
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
logger.error('[CacheManager.loadString] Failed to load string cache', {
|
|
164
|
+
key,
|
|
165
|
+
error: error.message,
|
|
166
|
+
stack: error.stack,
|
|
167
|
+
});
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Loads binary data from the cache.
|
|
173
|
+
* Convenience method for binary-only access.
|
|
174
|
+
*
|
|
175
|
+
* @param key - Cache key
|
|
176
|
+
* @returns Cached binary data as Uint8Array, or null if not found
|
|
177
|
+
*/
|
|
178
|
+
async loadBytes(key) {
|
|
179
|
+
const storage = await this.getStorage();
|
|
180
|
+
logger.debug('[CacheManager.loadBytes] Loading binary cache', { key });
|
|
181
|
+
try {
|
|
182
|
+
const rawData = await storage.getItemRaw(key);
|
|
183
|
+
if (rawData instanceof Uint8Array) {
|
|
184
|
+
logger.debug('[CacheManager.loadBytes] Cache loaded (binary)', {
|
|
185
|
+
key,
|
|
186
|
+
size: rawData.length,
|
|
187
|
+
});
|
|
188
|
+
return rawData;
|
|
189
|
+
}
|
|
190
|
+
logger.debug('[CacheManager.loadBytes] Binary cache miss', { key });
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
logger.error('[CacheManager.loadBytes] Failed to load binary cache', {
|
|
195
|
+
key,
|
|
196
|
+
error: error.message,
|
|
197
|
+
stack: error.stack,
|
|
198
|
+
});
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Determines whether the cache should be refreshed (missing or expired).
|
|
204
|
+
*
|
|
205
|
+
* @param key - The cache key to check
|
|
206
|
+
* @param ttl - Time-to-live in seconds
|
|
207
|
+
* @returns true if cache should be refreshed, false if still valid
|
|
208
|
+
*/
|
|
209
|
+
async shouldRefresh(key, ttl) {
|
|
210
|
+
const storage = await this.getStorage();
|
|
211
|
+
logger.debug('[CacheManager.shouldRefresh] Checking cache freshness', {
|
|
212
|
+
key,
|
|
213
|
+
ttlSeconds: ttl,
|
|
214
|
+
});
|
|
215
|
+
try {
|
|
216
|
+
// Check metadata for raw binary data
|
|
217
|
+
const meta = await storage.getItem(`${key}.meta`);
|
|
218
|
+
if (meta && typeof meta === 'object' && 'timestamp' in meta) {
|
|
219
|
+
const expired = this.isExpired(meta.timestamp, ttl);
|
|
220
|
+
logger.trace('[CacheManager.shouldRefresh] Cache freshness check (meta)', {
|
|
221
|
+
key,
|
|
222
|
+
expired,
|
|
223
|
+
age: Math.floor(Date.now() / 1000) - meta.timestamp,
|
|
224
|
+
});
|
|
225
|
+
return expired;
|
|
226
|
+
}
|
|
227
|
+
// Check direct storage data (backward compatibility)
|
|
228
|
+
const data = await storage.getItem(key);
|
|
229
|
+
if (data) {
|
|
230
|
+
if (this.isCacheEntry(data)) {
|
|
231
|
+
const expired = this.isExpired(data.timestamp, ttl);
|
|
232
|
+
logger.trace('[CacheManager.shouldRefresh] Cache freshness check (CacheEntry)', {
|
|
233
|
+
key,
|
|
234
|
+
expired,
|
|
235
|
+
age: Math.floor(Date.now() / 1000) - data.timestamp,
|
|
236
|
+
});
|
|
237
|
+
return expired;
|
|
238
|
+
}
|
|
239
|
+
// Has data but no timestamp - treat as needing refresh
|
|
240
|
+
logger.warn('[CacheManager.shouldRefresh] Data without timestamp, needs refresh', {
|
|
241
|
+
key,
|
|
242
|
+
});
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
logger.trace('[CacheManager.shouldRefresh] Cache miss, needs refresh', { key });
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
logger.error('[CacheManager.shouldRefresh] Failed to check freshness', {
|
|
250
|
+
key,
|
|
251
|
+
error: error.message,
|
|
252
|
+
stack: error.stack,
|
|
253
|
+
});
|
|
254
|
+
return true; // On error, assume refresh needed
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Deletes a specific cache entry and its associated metadata.
|
|
259
|
+
*
|
|
260
|
+
* @param key - Cache key to delete
|
|
261
|
+
* @returns Promise that resolves when deletion is complete
|
|
262
|
+
*/
|
|
263
|
+
async delete(key) {
|
|
264
|
+
const storage = await this.getStorage();
|
|
265
|
+
logger.debug('[CacheManager.delete] Deleting cache entry', { key });
|
|
266
|
+
try {
|
|
267
|
+
await Promise.all([
|
|
268
|
+
storage.removeItem(key),
|
|
269
|
+
storage.removeItem(`${key}.meta`),
|
|
270
|
+
]);
|
|
271
|
+
logger.trace('[CacheManager.delete] Cache deleted successfully', { key });
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
logger.error('[CacheManager.delete] Failed to delete cache', {
|
|
275
|
+
key,
|
|
276
|
+
error: error.message,
|
|
277
|
+
stack: error.stack,
|
|
278
|
+
});
|
|
279
|
+
throw error;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Lists all cache keys matching an optional prefix.
|
|
284
|
+
*
|
|
285
|
+
* @param base - Optional prefix to filter keys
|
|
286
|
+
* @returns Array of cache keys
|
|
287
|
+
*/
|
|
288
|
+
async listKeys(base) {
|
|
289
|
+
const storage = await this.getStorage();
|
|
290
|
+
logger.debug('[CacheManager.listKeys] Listing cache keys', {
|
|
291
|
+
prefix: base || '(root)',
|
|
292
|
+
});
|
|
293
|
+
try {
|
|
294
|
+
const _prefix = getDbBaseNameScope();
|
|
295
|
+
const _base = `${_prefix}${base}`;
|
|
296
|
+
const keys = await storage.getKeys(base === undefined ? base : _base);
|
|
297
|
+
logger.debug('[CacheManager.listKeys] Keys listed successfully', {
|
|
298
|
+
prefix: base || '(root)',
|
|
299
|
+
count: keys.length,
|
|
300
|
+
keys: keys.length > 0 ? keys.slice(0, 10) : [], // Log first 10 to avoid bloat
|
|
301
|
+
});
|
|
302
|
+
return keys.map((key) => {
|
|
303
|
+
return key.startsWith(_prefix) ? key.slice(_prefix.length) : key;
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
logger.error('[CacheManager.listKeys] Failed to list keys', {
|
|
308
|
+
prefix: base || '(root)',
|
|
309
|
+
error: error.message,
|
|
310
|
+
stack: error.stack,
|
|
311
|
+
});
|
|
312
|
+
throw error;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Clears all cache entries with an optional prefix.
|
|
317
|
+
* Deletes both main entries and their metadata counterparts.
|
|
318
|
+
*
|
|
319
|
+
* @param base - Optional prefix to filter keys for clearing
|
|
320
|
+
* @returns Promise that resolves when clear is complete
|
|
321
|
+
*/
|
|
322
|
+
async clear(base) {
|
|
323
|
+
const storage = await this.getStorage();
|
|
324
|
+
logger.debug('[CacheManager.clear] Clearing cache', {
|
|
325
|
+
prefix: base || '(root)',
|
|
326
|
+
});
|
|
327
|
+
try {
|
|
328
|
+
const keys = await this.listKeys(base);
|
|
329
|
+
logger.debug('[CacheManager.clear] Found keys to clear', {
|
|
330
|
+
prefix: base || '(root)',
|
|
331
|
+
count: keys.length,
|
|
332
|
+
keys,
|
|
333
|
+
});
|
|
334
|
+
// Delete all keys and their metadata in parallel
|
|
335
|
+
const deletePromises = keys.flatMap((key) => [
|
|
336
|
+
storage.removeItem(key),
|
|
337
|
+
storage.removeItem(`${key}.meta`),
|
|
338
|
+
]);
|
|
339
|
+
await Promise.all(deletePromises);
|
|
340
|
+
logger.debug('[CacheManager.clear] Cache cleared successfully', {
|
|
341
|
+
prefix: base || '(root)',
|
|
342
|
+
keysRemoved: keys.length,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
logger.error('[CacheManager.clear] Failed to clear cache', {
|
|
347
|
+
prefix: base || '(root)',
|
|
348
|
+
error: error.message,
|
|
349
|
+
stack: error.stack,
|
|
350
|
+
});
|
|
351
|
+
throw error;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
// ============================================================================
|
|
355
|
+
// Private Helpers
|
|
356
|
+
// ============================================================================
|
|
357
|
+
/**
|
|
358
|
+
* Lazy-initializes and returns the storage instance.
|
|
359
|
+
* Storage is created once and reused for all operations.
|
|
360
|
+
*
|
|
361
|
+
* @returns The initialized Storage instance
|
|
362
|
+
* @throws Error if storage initialization fails
|
|
363
|
+
*/
|
|
364
|
+
async getStorage() {
|
|
365
|
+
if (this.storage === null) {
|
|
366
|
+
logger.debug('[CacheManager.getStorage] Initializing storage (lazy)');
|
|
367
|
+
this.storage = await this.initStorage(this.options);
|
|
368
|
+
}
|
|
369
|
+
return this.storage;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Initializes the storage backend based on the runtime environment.
|
|
373
|
+
* Uses #runtime to select the appropriate driver (Node.js fs or browser IndexedDB).
|
|
374
|
+
*
|
|
375
|
+
* @param options - Cache configuration options
|
|
376
|
+
* @returns Configured Storage instance
|
|
377
|
+
* @throws Error if driver creation fails
|
|
378
|
+
*/
|
|
379
|
+
async initStorage(options) {
|
|
380
|
+
logger.debug('[CacheManager.initStorage] Creating storage backend', { options });
|
|
381
|
+
try {
|
|
382
|
+
const driver = await createCacheDriver(options);
|
|
383
|
+
logger.trace('[CacheManager.initStorage] Cache driver created', {
|
|
384
|
+
driverType: typeof driver,
|
|
385
|
+
});
|
|
386
|
+
const storage = createStorage({ driver });
|
|
387
|
+
logger.debug('[CacheManager.initStorage] Storage initialized successfully');
|
|
388
|
+
return storage;
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
logger.error('[CacheManager.initStorage] Failed to initialize storage', {
|
|
392
|
+
options,
|
|
393
|
+
error: error.message,
|
|
394
|
+
stack: error.stack,
|
|
395
|
+
});
|
|
396
|
+
throw error;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Type guard for validating CacheEntry objects.
|
|
401
|
+
*
|
|
402
|
+
* @param value - Value to check
|
|
403
|
+
* @returns true if value is a valid CacheEntry
|
|
404
|
+
*/
|
|
405
|
+
isCacheEntry(value) {
|
|
406
|
+
const isValid = value && typeof value === 'object' &&
|
|
407
|
+
'data' in value && typeof value.data === 'string' &&
|
|
408
|
+
'timestamp' in value && typeof value.timestamp === 'number';
|
|
409
|
+
if (!isValid && value && typeof value === 'object') {
|
|
410
|
+
logger.trace('[CacheManager.isCacheEntry] Invalid CacheEntry format', {
|
|
411
|
+
hasData: 'data' in value,
|
|
412
|
+
hasTimestamp: 'timestamp' in value,
|
|
413
|
+
dataType: typeof value.data,
|
|
414
|
+
timestampType: typeof value.timestamp,
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
return isValid;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Checks if a timestamp has expired relative to the maximum age (in seconds).
|
|
421
|
+
*
|
|
422
|
+
* @param timestamp - Unix timestamp (seconds) when entry was created
|
|
423
|
+
* @param maxAge - Maximum age in seconds
|
|
424
|
+
* @returns true if the entry has expired
|
|
425
|
+
*/
|
|
426
|
+
isExpired(timestamp, maxAge) {
|
|
427
|
+
const now = Math.floor(Date.now() / 1000);
|
|
428
|
+
const age = now - timestamp;
|
|
429
|
+
const expired = age >= maxAge;
|
|
430
|
+
if (expired) {
|
|
431
|
+
logger.trace('[CacheManager.isExpired] Entry expired', {
|
|
432
|
+
age,
|
|
433
|
+
maxAge,
|
|
434
|
+
expired: true,
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
return expired;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
//# sourceMappingURL=cache-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../../src/core/cache-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chain information for supported blockchain networks.
|
|
3
|
+
*/
|
|
4
|
+
export interface ChainInfo {
|
|
5
|
+
/** Blockchain chain ID (uint256) */
|
|
6
|
+
chainId: bigint;
|
|
7
|
+
/** Mapped chain key used in handles (uint8) */
|
|
8
|
+
chainKey: number;
|
|
9
|
+
/** Human-readable network name */
|
|
10
|
+
name: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* List of supported blockchain networks with their chain ID to chain key mappings.
|
|
14
|
+
* Chain key is a compact identifier used in handle generation.
|
|
15
|
+
*/
|
|
16
|
+
export declare const CHAINS: readonly ChainInfo[];
|
|
17
|
+
/**
|
|
18
|
+
* Map chain key to chain ID for quick lookup
|
|
19
|
+
* Created as a Map for O(1) lookup performance
|
|
20
|
+
*/
|
|
21
|
+
export declare const chainKeyToChainIdMap: Map<number, bigint>;
|
|
22
|
+
/**
|
|
23
|
+
* Map chain ID to chain key for reverse lookup
|
|
24
|
+
* Useful for validation and debugging
|
|
25
|
+
*/
|
|
26
|
+
export declare const chainIdToChainKeyMap: Map<bigint, number>;
|
|
27
|
+
/**
|
|
28
|
+
* Converts a blockchain chain ID to its corresponding chain key.
|
|
29
|
+
* @param chainId - Blockchain chain ID (e.g., 1n for Ethereum Mainnet)
|
|
30
|
+
* @returns The mapped chain key (uint8) used in handle generation
|
|
31
|
+
* @throws Error if the chain ID is not supported
|
|
32
|
+
*/
|
|
33
|
+
export declare function getChainKey(chainId: bigint): number;
|
|
34
|
+
/**
|
|
35
|
+
* Builds arguments for setting chain mappings in a smart contract.
|
|
36
|
+
* @returns An object containing arrays of chain IDs and their corresponding chain keys
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildSetChainKeysArgs(): {
|
|
39
|
+
chainIds: bigint[];
|
|
40
|
+
chainKeys: number[];
|
|
41
|
+
};
|