@aztec/foundation 0.0.1-commit.ee80a48 → 0.0.1-commit.f103f88
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/dest/array/sorted_array.d.ts +6 -1
- package/dest/array/sorted_array.d.ts.map +1 -1
- package/dest/array/sorted_array.js +18 -15
- package/dest/branded-types/buffer32_hash.d.ts +24 -0
- package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
- package/dest/branded-types/buffer32_hash.js +19 -0
- package/dest/branded-types/checkpoint_number.d.ts +4 -1
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
- package/dest/branded-types/checkpoint_number.js +3 -0
- package/dest/branded-types/index.d.ts +2 -1
- package/dest/branded-types/index.d.ts.map +1 -1
- package/dest/branded-types/index.js +1 -0
- package/dest/branded-types/slot.d.ts +4 -1
- package/dest/branded-types/slot.d.ts.map +1 -1
- package/dest/branded-types/slot.js +3 -0
- package/dest/buffer/buffer16.d.ts +3 -1
- package/dest/buffer/buffer16.d.ts.map +1 -1
- package/dest/buffer/buffer32.d.ts +28 -61
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +26 -60
- package/dest/buffer/index.d.ts +2 -1
- package/dest/buffer/index.d.ts.map +1 -1
- package/dest/buffer/index.js +1 -0
- package/dest/buffer/utils.d.ts +3 -0
- package/dest/buffer/utils.d.ts.map +1 -0
- package/dest/buffer/utils.js +7 -0
- package/dest/collection/array.d.ts +3 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +15 -0
- package/dest/collection/index.d.ts +2 -1
- package/dest/collection/index.d.ts.map +1 -1
- package/dest/collection/index.js +1 -0
- package/dest/collection/lru_set.d.ts +35 -0
- package/dest/collection/lru_set.d.ts.map +1 -0
- package/dest/collection/lru_set.js +95 -0
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +48 -30
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +35 -29
- package/dest/config/network_config.d.ts +19 -1
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +4 -1
- package/dest/config/network_name.d.ts +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +2 -0
- package/dest/crypto/aes128/index.d.ts +2 -1
- package/dest/crypto/aes128/index.d.ts.map +1 -1
- package/dest/crypto/aes128/index.js +11 -2
- package/dest/crypto/bls/bn254_keystore.d.ts +1 -10
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
- package/dest/crypto/bls/bn254_keystore.js +0 -17
- package/dest/crypto/poseidon/index.d.ts +1 -1
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +40 -33
- package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.js +26 -0
- package/dest/curves/bls12/field.d.ts +1 -1
- package/dest/curves/bls12/field.d.ts.map +1 -1
- package/dest/curves/bls12/field.js +0 -5
- package/dest/curves/bn254/field.d.ts +18 -16
- package/dest/curves/bn254/field.d.ts.map +1 -1
- package/dest/curves/bn254/field.js +23 -15
- package/dest/curves/grumpkin/point.d.ts +4 -4
- package/dest/curves/grumpkin/point.d.ts.map +1 -1
- package/dest/curves/grumpkin/point.js +7 -4
- package/dest/eth-address/index.d.ts +1 -1
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +0 -3
- package/dest/eth-signature/eth_signature.d.ts +2 -1
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.js +7 -2
- package/dest/fifo/fifo_frame_reader.d.ts +41 -0
- package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
- package/dest/fifo/fifo_frame_reader.js +74 -0
- package/dest/fifo/index.d.ts +2 -0
- package/dest/fifo/index.d.ts.map +1 -0
- package/dest/fifo/index.js +1 -0
- package/dest/jest/setup.js +24 -0
- package/dest/json-rpc/client/fetch.d.ts +1 -1
- package/dest/json-rpc/client/fetch.d.ts.map +1 -1
- package/dest/json-rpc/client/fetch.js +4 -3
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +1 -1
- package/dest/json-rpc/client/undici.d.ts +1 -1
- package/dest/json-rpc/client/undici.d.ts.map +1 -1
- package/dest/json-rpc/client/undici.js +5 -3
- package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
- package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
- package/dest/json-rpc/server/api_key_auth.js +57 -0
- package/dest/json-rpc/server/index.d.ts +2 -1
- package/dest/json-rpc/server/index.d.ts.map +1 -1
- package/dest/json-rpc/server/index.js +1 -0
- package/dest/log/bigint-utils.d.ts +5 -0
- package/dest/log/bigint-utils.d.ts.map +1 -0
- package/dest/log/bigint-utils.js +21 -0
- package/dest/log/gcloud-logger-config.d.ts +1 -1
- package/dest/log/gcloud-logger-config.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.js +3 -0
- package/dest/log/log-filters.d.ts +17 -4
- package/dest/log/log-filters.d.ts.map +1 -1
- package/dest/log/log-filters.js +26 -12
- package/dest/log/pino-logger.d.ts +1 -1
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +23 -4
- package/dest/queue/base_memory_queue.d.ts +2 -2
- package/dest/queue/base_memory_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.d.ts +1 -1
- package/dest/queue/batch_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.js +1 -0
- package/dest/retry/index.d.ts +12 -1
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +21 -0
- package/dest/schemas/api.d.ts +2 -2
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.d.ts +8 -1
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +13 -0
- package/dest/serialize/serialize.d.ts +19 -1
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +31 -0
- package/dest/sleep/index.d.ts +2 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +10 -1
- package/dest/string/index.js +1 -1
- package/dest/timer/date.d.ts +25 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +33 -0
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
- package/dest/transport/index.d.ts +1 -2
- package/dest/transport/index.d.ts.map +1 -1
- package/dest/transport/index.js +0 -1
- package/dest/transport/transport_client.js +2 -2
- package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
- package/package.json +23 -2
- package/src/array/sorted_array.ts +22 -17
- package/src/branded-types/buffer32_hash.ts +42 -0
- package/src/branded-types/checkpoint_number.ts +5 -0
- package/src/branded-types/index.ts +1 -0
- package/src/branded-types/slot.ts +5 -0
- package/src/buffer/buffer16.ts +3 -0
- package/src/buffer/buffer32.ts +36 -65
- package/src/buffer/index.ts +1 -0
- package/src/buffer/utils.ts +8 -0
- package/src/collection/array.ts +14 -0
- package/src/collection/index.ts +1 -0
- package/src/collection/lru_set.ts +115 -0
- package/src/config/env_var.ts +57 -13
- package/src/config/index.ts +110 -83
- package/src/config/network_config.ts +3 -0
- package/src/config/network_name.ts +4 -1
- package/src/crypto/aes128/index.ts +11 -2
- package/src/crypto/bls/bn254_keystore.ts +0 -23
- package/src/crypto/poseidon/index.ts +42 -34
- package/src/crypto/secp256k1-signer/utils.ts +32 -0
- package/src/curves/bls12/field.ts +0 -7
- package/src/curves/bn254/field.ts +31 -33
- package/src/curves/grumpkin/point.ts +6 -3
- package/src/eth-address/index.ts +0 -4
- package/src/eth-signature/eth_signature.ts +7 -1
- package/src/fifo/fifo_frame_reader.ts +98 -0
- package/src/fifo/index.ts +1 -0
- package/src/jest/setup.mjs +27 -0
- package/src/json-rpc/client/fetch.ts +4 -3
- package/src/json-rpc/client/safe_json_rpc_client.ts +2 -0
- package/src/json-rpc/client/undici.ts +5 -3
- package/src/json-rpc/server/api_key_auth.ts +63 -0
- package/src/json-rpc/server/index.ts +1 -0
- package/src/log/bigint-utils.ts +25 -0
- package/src/log/gcloud-logger-config.ts +5 -0
- package/src/log/log-filters.ts +29 -11
- package/src/log/pino-logger.ts +25 -4
- package/src/queue/base_memory_queue.ts +1 -1
- package/src/queue/batch_queue.ts +1 -0
- package/src/retry/index.ts +30 -0
- package/src/schemas/api.ts +4 -1
- package/src/serialize/buffer_reader.ts +15 -0
- package/src/serialize/serialize.ts +32 -0
- package/src/sleep/index.ts +10 -1
- package/src/string/index.ts +1 -1
- package/src/timer/date.ts +48 -0
- package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
- package/src/transport/index.ts +0 -1
- package/src/transport/transport_client.ts +2 -2
- package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
- package/dest/crypto/serialize.d.ts +0 -51
- package/dest/crypto/serialize.d.ts.map +0 -1
- package/dest/crypto/serialize.js +0 -68
- package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
- package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
- package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
- package/src/crypto/serialize.ts +0 -85
- package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/** Node in a doubly-linked list used by {@link LruSet}. */
|
|
2
|
+
type LruNode<T> = {
|
|
3
|
+
value: T;
|
|
4
|
+
prev: LruNode<T> | undefined;
|
|
5
|
+
next: LruNode<T> | undefined;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A bounded set with Least Recently Used (LRU) eviction.
|
|
10
|
+
* Both {@link has} and {@link add} count as an access and refresh the entry's
|
|
11
|
+
* recency, so items that are actively checked stay in the set longest.
|
|
12
|
+
*
|
|
13
|
+
* Uses a doubly-linked list for O(1) ordering and a Map for O(1) lookup.
|
|
14
|
+
* Head = least recent, tail = most recent.
|
|
15
|
+
*/
|
|
16
|
+
export class LruSet<T> {
|
|
17
|
+
/** Map from value to its linked-list node for O(1) lookup. */
|
|
18
|
+
private readonly map = new Map<T, LruNode<T>>();
|
|
19
|
+
private head: LruNode<T> | undefined;
|
|
20
|
+
private tail: LruNode<T> | undefined;
|
|
21
|
+
|
|
22
|
+
constructor(private readonly maxSize: number) {
|
|
23
|
+
if (maxSize < 1) {
|
|
24
|
+
throw new Error('LruSet maxSize must be at least 1');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Number of entries in the set. */
|
|
29
|
+
get size(): number {
|
|
30
|
+
return this.map.size;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Returns true if the item is in the set.
|
|
35
|
+
* Refreshes the item's recency so it becomes the most recently used.
|
|
36
|
+
*/
|
|
37
|
+
has(item: T): boolean {
|
|
38
|
+
const node = this.map.get(item);
|
|
39
|
+
if (!node) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
this.moveToTail(node);
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Adds an item to the set. If the item already exists, refreshes its recency.
|
|
48
|
+
* If the set is at capacity, evicts the least recently used item.
|
|
49
|
+
*/
|
|
50
|
+
add(item: T): void {
|
|
51
|
+
const existing = this.map.get(item);
|
|
52
|
+
if (existing) {
|
|
53
|
+
this.moveToTail(existing);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (this.map.size >= this.maxSize) {
|
|
58
|
+
this.evictHead();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const node: LruNode<T> = { value: item, prev: this.tail, next: undefined };
|
|
62
|
+
if (this.tail) {
|
|
63
|
+
this.tail.next = node;
|
|
64
|
+
} else {
|
|
65
|
+
this.head = node;
|
|
66
|
+
}
|
|
67
|
+
this.tail = node;
|
|
68
|
+
this.map.set(item, node);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Removes all entries from the set. */
|
|
72
|
+
clear(): void {
|
|
73
|
+
this.map.clear();
|
|
74
|
+
this.head = undefined;
|
|
75
|
+
this.tail = undefined;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Unlinks a node from its current position and relinks it at the tail. */
|
|
79
|
+
private moveToTail(node: LruNode<T>): void {
|
|
80
|
+
if (node === this.tail) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Unlink
|
|
85
|
+
if (node.prev) {
|
|
86
|
+
node.prev.next = node.next;
|
|
87
|
+
} else {
|
|
88
|
+
this.head = node.next;
|
|
89
|
+
}
|
|
90
|
+
if (node.next) {
|
|
91
|
+
node.next.prev = node.prev;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Relink at tail
|
|
95
|
+
node.prev = this.tail;
|
|
96
|
+
node.next = undefined;
|
|
97
|
+
if (this.tail) {
|
|
98
|
+
this.tail.next = node;
|
|
99
|
+
}
|
|
100
|
+
this.tail = node;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Evicts the head (least recently used) node. */
|
|
104
|
+
private evictHead(): void {
|
|
105
|
+
const oldHead = this.head!;
|
|
106
|
+
this.map.delete(oldHead.value);
|
|
107
|
+
|
|
108
|
+
this.head = oldHead.next;
|
|
109
|
+
if (this.head) {
|
|
110
|
+
this.head.prev = undefined;
|
|
111
|
+
} else {
|
|
112
|
+
this.tail = undefined;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
package/src/config/env_var.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export type EnvVar =
|
|
2
2
|
| 'REGISTRY_CONTRACT_ADDRESS'
|
|
3
3
|
| 'FEE_ASSET_HANDLER_CONTRACT_ADDRESS'
|
|
4
|
-
| 'SLASH_FACTORY_CONTRACT_ADDRESS'
|
|
5
4
|
| 'ACVM_BINARY_PATH'
|
|
6
5
|
| 'ACVM_WORKING_DIRECTORY'
|
|
7
6
|
| 'API_KEY'
|
|
@@ -12,6 +11,10 @@ export type EnvVar =
|
|
|
12
11
|
| 'ARCHIVER_VIEM_POLLING_INTERVAL_MS'
|
|
13
12
|
| 'ARCHIVER_BATCH_SIZE'
|
|
14
13
|
| 'AZTEC_ADMIN_PORT'
|
|
14
|
+
| 'AZTEC_NODE_DEBUG'
|
|
15
|
+
| 'AZTEC_ADMIN_API_KEY_HASH'
|
|
16
|
+
| 'AZTEC_DISABLE_ADMIN_API_KEY'
|
|
17
|
+
| 'AZTEC_RESET_ADMIN_API_KEY'
|
|
15
18
|
| 'AZTEC_NODE_ADMIN_URL'
|
|
16
19
|
| 'AZTEC_NODE_URL'
|
|
17
20
|
| 'AZTEC_PORT'
|
|
@@ -20,6 +23,8 @@ export type EnvVar =
|
|
|
20
23
|
| 'BB_WORKING_DIRECTORY'
|
|
21
24
|
| 'BB_NUM_IVC_VERIFIERS'
|
|
22
25
|
| 'BB_IVC_CONCURRENCY'
|
|
26
|
+
| 'BB_CHONK_VERIFY_MAX_BATCH'
|
|
27
|
+
| 'BB_CHONK_VERIFY_BATCH_CONCURRENCY'
|
|
23
28
|
| 'BOOTSTRAP_NODES'
|
|
24
29
|
| 'BLOB_ARCHIVE_API_URL'
|
|
25
30
|
| 'BLOB_FILE_STORE_URLS'
|
|
@@ -47,7 +52,10 @@ export type EnvVar =
|
|
|
47
52
|
| 'BOT_TX_MINED_WAIT_SECONDS'
|
|
48
53
|
| 'BOT_MAX_CONSECUTIVE_ERRORS'
|
|
49
54
|
| 'BOT_STOP_WHEN_UNHEALTHY'
|
|
50
|
-
| '
|
|
55
|
+
| 'BOT_MODE'
|
|
56
|
+
| 'BOT_L2_TO_L1_MESSAGES_PER_TX'
|
|
57
|
+
| 'BOT_L1_TO_L2_SEED_COUNT'
|
|
58
|
+
| 'BOT_L1_TO_L2_SEED_INTERVAL'
|
|
51
59
|
| 'COINBASE'
|
|
52
60
|
| 'CRS_PATH'
|
|
53
61
|
| 'DATA_DIRECTORY'
|
|
@@ -56,6 +64,7 @@ export type EnvVar =
|
|
|
56
64
|
| 'BLOB_SINK_MAP_SIZE_KB'
|
|
57
65
|
| 'P2P_STORE_MAP_SIZE_KB'
|
|
58
66
|
| 'PROVER_BROKER_STORE_MAP_SIZE_KB'
|
|
67
|
+
| 'SIGNING_PROTECTION_MAP_SIZE_KB'
|
|
59
68
|
| 'WS_DB_MAP_SIZE_KB'
|
|
60
69
|
| 'ARCHIVE_TREE_MAP_SIZE_KB'
|
|
61
70
|
| 'NULLIFIER_TREE_MAP_SIZE_KB'
|
|
@@ -64,6 +73,7 @@ export type EnvVar =
|
|
|
64
73
|
| 'PUBLIC_DATA_TREE_MAP_SIZE_KB'
|
|
65
74
|
| 'DEBUG'
|
|
66
75
|
| 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
|
|
76
|
+
| 'ENABLE_PROVER_NODE'
|
|
67
77
|
| 'ETHEREUM_HOSTS'
|
|
68
78
|
| 'ETHEREUM_DEBUG_HOSTS'
|
|
69
79
|
| 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
|
|
@@ -73,8 +83,10 @@ export type EnvVar =
|
|
|
73
83
|
| 'KEY_STORE_DIRECTORY'
|
|
74
84
|
| 'L1_CHAIN_ID'
|
|
75
85
|
| 'L1_CONSENSUS_HOST_URLS'
|
|
86
|
+
| 'ETHEREUM_HTTP_TIMEOUT_MS'
|
|
76
87
|
| 'L1_CONSENSUS_HOST_API_KEYS'
|
|
77
88
|
| 'L1_CONSENSUS_HOST_API_KEY_HEADERS'
|
|
89
|
+
| 'L1_TX_FAILED_STORE'
|
|
78
90
|
| 'LOG_JSON'
|
|
79
91
|
| 'LOG_MULTILINE'
|
|
80
92
|
| 'LOG_NO_COLOR_PER_ACTOR'
|
|
@@ -82,7 +94,6 @@ export type EnvVar =
|
|
|
82
94
|
| 'MNEMONIC'
|
|
83
95
|
| 'NETWORK'
|
|
84
96
|
| 'NETWORK_CONFIG_LOCATION'
|
|
85
|
-
| 'NO_PXE'
|
|
86
97
|
| 'USE_GCLOUD_LOGGING'
|
|
87
98
|
| 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
|
|
88
99
|
| 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'
|
|
@@ -100,6 +111,7 @@ export type EnvVar =
|
|
|
100
111
|
| 'P2P_BATCH_TX_REQUESTER_TX_BATCH_SIZE'
|
|
101
112
|
| 'P2P_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD'
|
|
102
113
|
| 'P2P_BLOCK_CHECK_INTERVAL_MS'
|
|
114
|
+
| 'P2P_SLOT_CHECK_INTERVAL_MS'
|
|
103
115
|
| 'P2P_BLOCK_REQUEST_BATCH_SIZE'
|
|
104
116
|
| 'P2P_BOOTSTRAP_NODE_ENR_VERSION_CHECK'
|
|
105
117
|
| 'P2P_BOOTSTRAP_NODES_AS_FULL_PEERS'
|
|
@@ -120,6 +132,7 @@ export type EnvVar =
|
|
|
120
132
|
| 'P2P_L2_QUEUE_SIZE'
|
|
121
133
|
| 'P2P_MAX_PEERS'
|
|
122
134
|
| 'P2P_PEER_CHECK_INTERVAL_MS'
|
|
135
|
+
| 'P2P_PEER_FAILED_BAN_TIME_MS'
|
|
123
136
|
| 'P2P_PEER_PENALTY_VALUES'
|
|
124
137
|
| 'P2P_QUERY_FOR_IP'
|
|
125
138
|
| 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS'
|
|
@@ -140,9 +153,10 @@ export type EnvVar =
|
|
|
140
153
|
| 'P2P_PREFERRED_PEERS'
|
|
141
154
|
| 'P2P_MAX_PENDING_TX_COUNT'
|
|
142
155
|
| 'P2P_SEEN_MSG_CACHE_SIZE'
|
|
143
|
-
| 'P2P_DROP_TX'
|
|
144
156
|
| 'P2P_DROP_TX_CHANCE'
|
|
145
157
|
| 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG'
|
|
158
|
+
| 'P2P_MIN_TX_POOL_AGE_MS'
|
|
159
|
+
| 'P2P_RPC_PRICE_BUMP_PERCENTAGE'
|
|
146
160
|
| 'DEBUG_P2P_INSTRUMENT_MESSAGES'
|
|
147
161
|
| 'PEER_ID_PRIVATE_KEY'
|
|
148
162
|
| 'PEER_ID_PRIVATE_KEY_PATH'
|
|
@@ -156,8 +170,11 @@ export type EnvVar =
|
|
|
156
170
|
| 'PROVER_BROKER_BATCH_INTERVAL_MS'
|
|
157
171
|
| 'PROVER_BROKER_BATCH_SIZE'
|
|
158
172
|
| 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR'
|
|
173
|
+
| 'PROVER_BROKER_DEBUG_REPLAY_ENABLED'
|
|
159
174
|
| 'PROVER_CANCEL_JOBS_ON_STOP'
|
|
175
|
+
| 'PROVER_ENQUEUE_CONCURRENCY'
|
|
160
176
|
| 'PROVER_COORDINATION_NODE_URLS'
|
|
177
|
+
| 'PROVER_PROOF_STORE'
|
|
161
178
|
| 'PROVER_FAILED_PROOF_STORE'
|
|
162
179
|
| 'PROVER_NODE_FAILED_EPOCH_STORE'
|
|
163
180
|
| 'PROVER_NODE_DISABLE_PROOF_PUBLISH'
|
|
@@ -189,27 +206,33 @@ export type EnvVar =
|
|
|
189
206
|
| 'SENTINEL_ENABLED'
|
|
190
207
|
| 'SENTINEL_HISTORY_LENGTH_IN_EPOCHS'
|
|
191
208
|
| 'SENTINEL_HISTORIC_PROVEN_PERFORMANCE_LENGTH_IN_EPOCHS'
|
|
192
|
-
| '
|
|
209
|
+
| 'SEQ_ENABLE_PROPOSER_PIPELINING'
|
|
193
210
|
| 'SEQ_MAX_TX_PER_BLOCK'
|
|
211
|
+
| 'SEQ_MAX_TX_PER_CHECKPOINT'
|
|
194
212
|
| 'SEQ_MIN_TX_PER_BLOCK'
|
|
195
213
|
| 'SEQ_PUBLISH_TXS_WITH_PROPOSALS'
|
|
196
214
|
| 'SEQ_MAX_DA_BLOCK_GAS'
|
|
197
215
|
| 'SEQ_MAX_L2_BLOCK_GAS'
|
|
216
|
+
| 'SEQ_PER_BLOCK_ALLOCATION_MULTIPLIER'
|
|
217
|
+
| 'SEQ_REDISTRIBUTE_CHECKPOINT_BUDGET'
|
|
198
218
|
| 'SEQ_PUBLISHER_PRIVATE_KEY'
|
|
199
219
|
| 'SEQ_PUBLISHER_PRIVATE_KEYS'
|
|
200
220
|
| 'SEQ_PUBLISHER_ADDRESSES'
|
|
201
221
|
| 'SEQ_PUBLISHER_ALLOW_INVALID_STATES'
|
|
202
222
|
| 'SEQ_PUBLISHER_FORWARDER_ADDRESS'
|
|
223
|
+
| 'PUBLISHER_FUNDING_THRESHOLD'
|
|
224
|
+
| 'PUBLISHER_FUNDING_AMOUNT'
|
|
203
225
|
| 'SEQ_POLLING_INTERVAL_MS'
|
|
204
226
|
| 'SEQ_ENFORCE_TIME_TABLE'
|
|
205
227
|
| 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
|
|
206
228
|
| 'SEQ_ATTESTATION_PROPAGATION_TIME'
|
|
207
229
|
| 'SEQ_BLOCK_DURATION_MS'
|
|
230
|
+
| 'SEQ_LAST_BLOCK_DURATION_MS'
|
|
231
|
+
| 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT'
|
|
208
232
|
| 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
|
|
209
233
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
|
|
210
234
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
|
|
211
|
-
| '
|
|
212
|
-
| 'SLASH_MAX_PENALTY_PERCENTAGE'
|
|
235
|
+
| 'SEQ_SKIP_CHECKPOINT_PUBLISH_PERCENT'
|
|
213
236
|
| 'SLASH_VALIDATORS_ALWAYS'
|
|
214
237
|
| 'SLASH_VALIDATORS_NEVER'
|
|
215
238
|
| 'SLASH_PRUNE_PENALTY'
|
|
@@ -218,6 +241,8 @@ export type EnvVar =
|
|
|
218
241
|
| 'SLASH_INACTIVITY_TARGET_PERCENTAGE'
|
|
219
242
|
| 'SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD'
|
|
220
243
|
| 'SLASH_INVALID_BLOCK_PENALTY'
|
|
244
|
+
| 'SLASH_DUPLICATE_PROPOSAL_PENALTY'
|
|
245
|
+
| 'SLASH_DUPLICATE_ATTESTATION_PENALTY'
|
|
221
246
|
| 'SLASH_OVERRIDE_PAYLOAD'
|
|
222
247
|
| 'SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY'
|
|
223
248
|
| 'SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY'
|
|
@@ -232,6 +257,7 @@ export type EnvVar =
|
|
|
232
257
|
| 'TELEMETRY'
|
|
233
258
|
| 'TEST_ACCOUNTS'
|
|
234
259
|
| 'SPONSORED_FPC'
|
|
260
|
+
| 'PREFUND_ADDRESSES'
|
|
235
261
|
| 'TX_COLLECTION_FAST_NODES_TIMEOUT_BEFORE_REQ_RESP_MS'
|
|
236
262
|
| 'TX_COLLECTION_SLOW_NODES_INTERVAL_MS'
|
|
237
263
|
| 'TX_COLLECTION_SLOW_REQ_RESP_INTERVAL_MS'
|
|
@@ -242,21 +268,38 @@ export type EnvVar =
|
|
|
242
268
|
| 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE'
|
|
243
269
|
| 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE'
|
|
244
270
|
| 'TX_COLLECTION_NODE_RPC_URLS'
|
|
245
|
-
| '
|
|
271
|
+
| 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE'
|
|
272
|
+
| 'TX_COLLECTION_FILE_STORE_URLS'
|
|
273
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_DELAY_MS'
|
|
274
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_DELAY_MS'
|
|
275
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_WORKER_COUNT'
|
|
276
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_WORKER_COUNT'
|
|
277
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_BASE_MS'
|
|
278
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_BASE_MS'
|
|
279
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_MAX_MS'
|
|
280
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_MAX_MS'
|
|
281
|
+
| 'TX_FILE_STORE_URL'
|
|
282
|
+
| 'TX_FILE_STORE_UPLOAD_CONCURRENCY'
|
|
283
|
+
| 'TX_FILE_STORE_MAX_QUEUE_SIZE'
|
|
284
|
+
| 'TX_FILE_STORE_ENABLED'
|
|
246
285
|
| 'TX_PUBLIC_SETUP_ALLOWLIST'
|
|
247
286
|
| 'TXE_PORT'
|
|
248
287
|
| 'TRANSACTIONS_DISABLED'
|
|
249
288
|
| 'VALIDATOR_ATTESTATIONS_POLLING_INTERVAL_MS'
|
|
250
289
|
| 'VALIDATOR_DISABLED'
|
|
290
|
+
| 'VALIDATOR_MAX_DA_BLOCK_GAS'
|
|
291
|
+
| 'VALIDATOR_MAX_L2_BLOCK_GAS'
|
|
292
|
+
| 'VALIDATOR_MAX_TX_PER_BLOCK'
|
|
293
|
+
| 'VALIDATOR_MAX_TX_PER_CHECKPOINT'
|
|
251
294
|
| 'VALIDATOR_PRIVATE_KEYS'
|
|
252
295
|
| 'VALIDATOR_PRIVATE_KEY'
|
|
253
|
-
| 'VALIDATOR_REEXECUTE'
|
|
254
296
|
| 'VALIDATOR_ADDRESSES'
|
|
255
297
|
| 'ROLLUP_VERSION'
|
|
256
298
|
| 'WS_BLOCK_CHECK_INTERVAL_MS'
|
|
257
299
|
| 'WS_BLOCK_REQUEST_BATCH_SIZE'
|
|
258
300
|
| 'L1_READER_VIEM_POLLING_INTERVAL_MS'
|
|
259
301
|
| 'WS_DATA_DIRECTORY'
|
|
302
|
+
| 'WS_NUM_HISTORIC_CHECKPOINTS'
|
|
260
303
|
| 'WS_NUM_HISTORIC_BLOCKS'
|
|
261
304
|
| 'ETHEREUM_SLOT_DURATION'
|
|
262
305
|
| 'AZTEC_SLOT_DURATION'
|
|
@@ -282,7 +325,7 @@ export type EnvVar =
|
|
|
282
325
|
| 'AZTEC_SLASH_AMOUNT_SMALL'
|
|
283
326
|
| 'AZTEC_SLASH_AMOUNT_MEDIUM'
|
|
284
327
|
| 'AZTEC_SLASH_AMOUNT_LARGE'
|
|
285
|
-
| '
|
|
328
|
+
| 'AZTEC_SLASHER_ENABLED'
|
|
286
329
|
| 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
|
|
287
330
|
| 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
|
|
288
331
|
| 'AZTEC_GOVERNANCE_VOTING_DURATION'
|
|
@@ -311,12 +354,12 @@ export type EnvVar =
|
|
|
311
354
|
| 'K8S_POD_NAME'
|
|
312
355
|
| 'K8S_POD_UID'
|
|
313
356
|
| 'K8S_NAMESPACE_NAME'
|
|
314
|
-
| '
|
|
315
|
-
| 'AUTO_UPDATE'
|
|
316
|
-
| 'AUTO_UPDATE_URL'
|
|
357
|
+
| 'ENABLE_VERSION_CHECK'
|
|
317
358
|
| 'WEB3_SIGNER_URL'
|
|
318
359
|
| 'SKIP_ARCHIVER_INITIAL_SYNC'
|
|
319
360
|
| 'BLOB_ALLOW_EMPTY_SOURCES'
|
|
361
|
+
| 'BLOB_PREFER_FILESTORES'
|
|
362
|
+
| 'BLOB_FILE_STORE_TIMEOUT_MS'
|
|
320
363
|
| 'FISHERMAN_MODE'
|
|
321
364
|
| 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS'
|
|
322
365
|
| 'LEGACY_BLS_CLI'
|
|
@@ -326,6 +369,7 @@ export type EnvVar =
|
|
|
326
369
|
| 'VALIDATOR_HA_POLLING_INTERVAL_MS'
|
|
327
370
|
| 'VALIDATOR_HA_SIGNING_TIMEOUT_MS'
|
|
328
371
|
| 'VALIDATOR_HA_MAX_STUCK_DUTIES_AGE_MS'
|
|
372
|
+
| 'VALIDATOR_HA_OLD_DUTIES_MAX_AGE_H'
|
|
329
373
|
| 'VALIDATOR_HA_DATABASE_URL'
|
|
330
374
|
| 'VALIDATOR_HA_RUN_MIGRATIONS'
|
|
331
375
|
| 'VALIDATOR_HA_POOL_MAX'
|
package/src/config/index.ts
CHANGED
|
@@ -10,14 +10,15 @@ export type { EnvVar, NetworkNames };
|
|
|
10
10
|
export type { NetworkConfig, NetworkConfigMap } from './network_config.js';
|
|
11
11
|
export { NetworkConfigMapSchema, NetworkConfigSchema } from './network_config.js';
|
|
12
12
|
|
|
13
|
-
export interface ConfigMapping {
|
|
13
|
+
export interface ConfigMapping<T> {
|
|
14
14
|
env?: EnvVar;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
/** Parse an env-var string into `T`. Throws on invalid input. */
|
|
16
|
+
parseEnv?: (val: string) => T;
|
|
17
|
+
defaultValue?: T;
|
|
17
18
|
printDefault?: (val: any) => string;
|
|
18
19
|
description: string;
|
|
19
20
|
isBoolean?: boolean;
|
|
20
|
-
nested?: Record<string, ConfigMapping
|
|
21
|
+
nested?: Record<string, ConfigMapping<any>>;
|
|
21
22
|
fallback?: EnvVar[];
|
|
22
23
|
/**
|
|
23
24
|
* List of deprecated env vars that are still supported but will log a warning.
|
|
@@ -30,7 +31,9 @@ export function isBooleanConfigValue<T>(obj: T, key: keyof T): boolean {
|
|
|
30
31
|
return typeof obj[key] === 'boolean';
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
export type ConfigMappingsType<T> =
|
|
34
|
+
export type ConfigMappingsType<T> = {
|
|
35
|
+
[K in keyof T]-?: ConfigMapping<Required<T>[K]>;
|
|
36
|
+
};
|
|
34
37
|
|
|
35
38
|
/**
|
|
36
39
|
* Shared utility function to get a value from environment variables with fallback support.
|
|
@@ -66,8 +69,8 @@ export function getValueFromEnvWithFallback<T>(
|
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
71
|
|
|
69
|
-
// Parse the value if needed
|
|
70
|
-
if (value !== undefined) {
|
|
72
|
+
// Parse the value if needed. Empty strings are treated as "not set".
|
|
73
|
+
if (value !== undefined && value !== '') {
|
|
71
74
|
return parseFunc ? parseFunc(value) : (value as unknown as T);
|
|
72
75
|
}
|
|
73
76
|
|
|
@@ -84,7 +87,11 @@ export function getConfigFromMappings<T>(configMappings: ConfigMappingsType<T>):
|
|
|
84
87
|
(config as any)[key] = getConfigFromMappings(nested);
|
|
85
88
|
} else {
|
|
86
89
|
// Use the shared utility function
|
|
87
|
-
|
|
90
|
+
try {
|
|
91
|
+
(config as any)[key] = getValueFromEnvWithFallback(env, parseEnv, defaultValue, fallback);
|
|
92
|
+
} catch (e: any) {
|
|
93
|
+
throw new Error(`Failed to parse config '${key}' (env: ${env ?? 'none'}): ${e.message}`);
|
|
94
|
+
}
|
|
88
95
|
|
|
89
96
|
// Check for deprecated env vars and warn if logger is set
|
|
90
97
|
if (deprecatedFallback?.length) {
|
|
@@ -123,7 +130,7 @@ export function omitConfigMappings<T, K extends keyof T>(
|
|
|
123
130
|
* @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
|
|
124
131
|
* @returns Object with parseEnv and default values for a numerical config value
|
|
125
132
|
*/
|
|
126
|
-
export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping
|
|
133
|
+
export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping<number>, 'parseEnv' | 'defaultValue'> {
|
|
127
134
|
return {
|
|
128
135
|
parseEnv: (val: string) => safeParseNumber(val, defaultVal),
|
|
129
136
|
defaultValue: defaultVal,
|
|
@@ -138,7 +145,7 @@ export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping, 'par
|
|
|
138
145
|
export function floatConfigHelper(
|
|
139
146
|
defaultVal: number,
|
|
140
147
|
validationFn?: (val: number) => void,
|
|
141
|
-
): Pick<ConfigMapping
|
|
148
|
+
): Pick<ConfigMapping<number>, 'parseEnv' | 'defaultValue'> {
|
|
142
149
|
return {
|
|
143
150
|
parseEnv: (val: string): number => {
|
|
144
151
|
const parsed = safeParseFloat(val, defaultVal);
|
|
@@ -152,7 +159,7 @@ export function floatConfigHelper(
|
|
|
152
159
|
/**
|
|
153
160
|
* Parses an environment variable to a 0-1 percentage value
|
|
154
161
|
*/
|
|
155
|
-
export function percentageConfigHelper(defaultVal: number): Pick<ConfigMapping
|
|
162
|
+
export function percentageConfigHelper(defaultVal: number): Pick<ConfigMapping<number>, 'parseEnv' | 'defaultValue'> {
|
|
156
163
|
return {
|
|
157
164
|
parseEnv: (val: string): number => {
|
|
158
165
|
const parsed = safeParseFloat(val, defaultVal);
|
|
@@ -171,11 +178,27 @@ export function percentageConfigHelper(defaultVal: number): Pick<ConfigMapping,
|
|
|
171
178
|
* @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
|
|
172
179
|
* @returns Object with parseEnv and default values for a numerical config value
|
|
173
180
|
*/
|
|
174
|
-
export function bigintConfigHelper(defaultVal
|
|
181
|
+
export function bigintConfigHelper(defaultVal: bigint): Pick<ConfigMapping<bigint>, 'parseEnv' | 'defaultValue'>;
|
|
182
|
+
export function bigintConfigHelper(): Pick<ConfigMapping<bigint | undefined>, 'parseEnv' | 'defaultValue'>;
|
|
183
|
+
export function bigintConfigHelper(
|
|
184
|
+
defaultVal?: bigint,
|
|
185
|
+
): Pick<ConfigMapping<bigint | undefined>, 'parseEnv' | 'defaultValue'> {
|
|
175
186
|
return {
|
|
176
187
|
parseEnv: (val: string) => {
|
|
177
|
-
|
|
178
|
-
|
|
188
|
+
// Handle scientific notation (e.g. "1e+23", "2E23") which BigInt() doesn't accept directly.
|
|
189
|
+
// We parse it losslessly using bigint arithmetic instead of going through float64.
|
|
190
|
+
if (/[eE]/.test(val)) {
|
|
191
|
+
const match = val.match(/^(-?\d+(?:\.(\d+))?)[eE]([+-]?\d+)$/);
|
|
192
|
+
if (!match) {
|
|
193
|
+
throw new Error(`Cannot convert '${val}' to a BigInt`);
|
|
194
|
+
}
|
|
195
|
+
const digits = match[1].replace('.', '');
|
|
196
|
+
const decimalPlaces = match[2]?.length ?? 0;
|
|
197
|
+
const exponent = parseInt(match[3], 10) - decimalPlaces;
|
|
198
|
+
if (exponent < 0) {
|
|
199
|
+
throw new Error(`Cannot convert '${val}' to a BigInt: result is not an integer`);
|
|
200
|
+
}
|
|
201
|
+
return BigInt(digits) * 10n ** BigInt(exponent);
|
|
179
202
|
}
|
|
180
203
|
return BigInt(val);
|
|
181
204
|
},
|
|
@@ -185,32 +208,37 @@ export function bigintConfigHelper(defaultVal?: bigint): Pick<ConfigMapping, 'pa
|
|
|
185
208
|
|
|
186
209
|
/**
|
|
187
210
|
* Generates parseEnv for an optional numerical config value.
|
|
211
|
+
* Empty strings are already handled by getValueFromEnvWithFallback.
|
|
188
212
|
*/
|
|
189
|
-
export function optionalNumberConfigHelper(): Pick<ConfigMapping
|
|
213
|
+
export function optionalNumberConfigHelper(): Pick<ConfigMapping<number>, 'parseEnv'> {
|
|
190
214
|
return {
|
|
191
|
-
parseEnv: (val: string
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
215
|
+
parseEnv: (val: string) => {
|
|
216
|
+
const parsedValue = parseInt(val);
|
|
217
|
+
if (!Number.isSafeInteger(parsedValue)) {
|
|
218
|
+
throw new Error(`Invalid number: ${val}`);
|
|
195
219
|
}
|
|
196
|
-
return
|
|
220
|
+
return parsedValue;
|
|
197
221
|
},
|
|
198
222
|
};
|
|
199
223
|
}
|
|
200
224
|
|
|
201
225
|
/** Generates parseEnv for an enum-like config value. */
|
|
226
|
+
export function enumConfigHelper<T extends string>(
|
|
227
|
+
values: T[],
|
|
228
|
+
defaultValue: NoInfer<T>,
|
|
229
|
+
): Pick<ConfigMapping<T>, 'parseEnv' | 'defaultValue'>;
|
|
230
|
+
export function enumConfigHelper<T extends string>(
|
|
231
|
+
values: T[],
|
|
232
|
+
): Pick<ConfigMapping<T | undefined>, 'parseEnv' | 'defaultValue'>;
|
|
202
233
|
export function enumConfigHelper<T extends string>(
|
|
203
234
|
values: T[],
|
|
204
235
|
defaultValue?: NoInfer<T>,
|
|
205
|
-
): Pick<ConfigMapping
|
|
236
|
+
): Pick<ConfigMapping<T | undefined>, 'parseEnv' | 'defaultValue'> {
|
|
206
237
|
return {
|
|
207
238
|
parseEnv: (val: string) => {
|
|
208
|
-
const sanitizedVal =
|
|
209
|
-
if (values.
|
|
210
|
-
return
|
|
211
|
-
}
|
|
212
|
-
if (!val && defaultValue) {
|
|
213
|
-
return defaultValue;
|
|
239
|
+
const sanitizedVal = val.trim().toLowerCase();
|
|
240
|
+
if (values.some(v => v.toLowerCase() === sanitizedVal)) {
|
|
241
|
+
return values.find(v => v.toLowerCase() === sanitizedVal)!;
|
|
214
242
|
}
|
|
215
243
|
throw new Error(`Invalid config value '${val}' (must be one of ${values.join(', ')})`);
|
|
216
244
|
},
|
|
@@ -225,7 +253,9 @@ export function enumConfigHelper<T extends string>(
|
|
|
225
253
|
*/
|
|
226
254
|
export function booleanConfigHelper(
|
|
227
255
|
defaultVal = false,
|
|
228
|
-
): Required<
|
|
256
|
+
): Required<
|
|
257
|
+
Pick<ConfigMapping<boolean>, 'parseEnv' | 'defaultValue' | 'isBoolean'> & { parseVal: (val: string) => boolean }
|
|
258
|
+
> {
|
|
229
259
|
const parse = (val: string | boolean) => (typeof val === 'boolean' ? val : parseBooleanEnv(val));
|
|
230
260
|
return {
|
|
231
261
|
parseEnv: parse,
|
|
@@ -235,91 +265,88 @@ export function booleanConfigHelper(
|
|
|
235
265
|
};
|
|
236
266
|
}
|
|
237
267
|
|
|
238
|
-
export function secretValueConfigHelper<T>(parse: (val: string | undefined) => T):
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
268
|
+
export function secretValueConfigHelper<T>(parse: (val: string | undefined) => T): Pick<
|
|
269
|
+
ConfigMapping<SecretValue<T>>,
|
|
270
|
+
'parseEnv' | 'defaultValue'
|
|
271
|
+
> & {
|
|
272
|
+
parseVal: (val: string) => SecretValue<T>;
|
|
273
|
+
} {
|
|
243
274
|
const wrap = (val: string) => new SecretValue(parse(val));
|
|
244
275
|
return {
|
|
245
276
|
parseEnv: wrap,
|
|
246
277
|
parseVal: wrap,
|
|
247
278
|
defaultValue: new SecretValue(parse(undefined)),
|
|
248
|
-
isBoolean: true,
|
|
249
279
|
};
|
|
250
280
|
}
|
|
251
281
|
|
|
252
282
|
export { parseBooleanEnv } from './parse-env.js';
|
|
253
283
|
|
|
254
|
-
export function secretStringConfigHelper():
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
export function secretStringConfigHelper(defaultValue: string):
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
export function secretStringConfigHelper(defaultValue?: string):
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
284
|
+
export function secretStringConfigHelper(): {
|
|
285
|
+
parseEnv: (val: string) => SecretValue<string>;
|
|
286
|
+
parseVal: (val: string) => SecretValue<string>;
|
|
287
|
+
defaultValue: undefined;
|
|
288
|
+
};
|
|
289
|
+
export function secretStringConfigHelper(defaultValue: string): {
|
|
290
|
+
parseEnv: (val: string) => SecretValue<string>;
|
|
291
|
+
parseVal: (val: string) => SecretValue<string>;
|
|
292
|
+
defaultValue: SecretValue<string>;
|
|
293
|
+
};
|
|
294
|
+
export function secretStringConfigHelper(defaultValue?: string): {
|
|
295
|
+
parseEnv: (val: string) => SecretValue<string>;
|
|
296
|
+
parseVal: (val: string) => SecretValue<string>;
|
|
297
|
+
defaultValue: SecretValue<string> | undefined;
|
|
298
|
+
} {
|
|
269
299
|
const parse = (val: string) => new SecretValue(val);
|
|
270
300
|
return {
|
|
271
301
|
parseEnv: parse,
|
|
272
302
|
parseVal: parse,
|
|
273
303
|
defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
|
|
274
|
-
isBoolean: true,
|
|
275
304
|
};
|
|
276
305
|
}
|
|
277
306
|
|
|
278
|
-
export function secretFrConfigHelper():
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
export function secretFrConfigHelper(defaultValue: Fr):
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
export function secretFrConfigHelper(defaultValue?: Fr):
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
307
|
+
export function secretFrConfigHelper(): {
|
|
308
|
+
parseEnv: (val: string) => SecretValue<Fr>;
|
|
309
|
+
parseVal: (val: string) => SecretValue<Fr>;
|
|
310
|
+
defaultValue: undefined;
|
|
311
|
+
};
|
|
312
|
+
export function secretFrConfigHelper(defaultValue: Fr): {
|
|
313
|
+
parseEnv: (val: string) => SecretValue<Fr>;
|
|
314
|
+
parseVal: (val: string) => SecretValue<Fr>;
|
|
315
|
+
defaultValue: SecretValue<Fr>;
|
|
316
|
+
};
|
|
317
|
+
export function secretFrConfigHelper(defaultValue?: Fr): {
|
|
318
|
+
parseEnv: (val: string) => SecretValue<Fr>;
|
|
319
|
+
parseVal: (val: string) => SecretValue<Fr>;
|
|
320
|
+
defaultValue: SecretValue<Fr> | undefined;
|
|
321
|
+
} {
|
|
293
322
|
const parse = (val: string) => new SecretValue(Fr.fromHexString(val));
|
|
294
323
|
return {
|
|
295
324
|
parseEnv: parse,
|
|
296
325
|
parseVal: parse,
|
|
297
326
|
defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
|
|
298
|
-
isBoolean: true,
|
|
299
327
|
};
|
|
300
328
|
}
|
|
301
329
|
|
|
302
|
-
export function secretFqConfigHelper(
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
export function secretFqConfigHelper():
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
export function secretFqConfigHelper(defaultValue?: Fq):
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
330
|
+
export function secretFqConfigHelper(): {
|
|
331
|
+
parseEnv: (val: string) => SecretValue<Fq>;
|
|
332
|
+
parseVal: (val: string) => SecretValue<Fq>;
|
|
333
|
+
defaultValue: undefined;
|
|
334
|
+
};
|
|
335
|
+
export function secretFqConfigHelper(defaultValue: Fq): {
|
|
336
|
+
parseEnv: (val: string) => SecretValue<Fq>;
|
|
337
|
+
parseVal: (val: string) => SecretValue<Fq>;
|
|
338
|
+
defaultValue: SecretValue<Fq>;
|
|
339
|
+
};
|
|
340
|
+
export function secretFqConfigHelper(defaultValue?: Fq): {
|
|
341
|
+
parseEnv: (val: string) => SecretValue<Fq>;
|
|
342
|
+
parseVal: (val: string) => SecretValue<Fq>;
|
|
343
|
+
defaultValue: SecretValue<Fq> | undefined;
|
|
344
|
+
} {
|
|
317
345
|
const parse = (val: string) => new SecretValue(Fq.fromHexString(val));
|
|
318
346
|
return {
|
|
319
347
|
parseEnv: parse,
|
|
320
348
|
parseVal: parse,
|
|
321
|
-
defaultValue:
|
|
322
|
-
isBoolean: true,
|
|
349
|
+
defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
|
|
323
350
|
};
|
|
324
351
|
}
|
|
325
352
|
|