@aztec/foundation 0.0.1-commit.001888fc → 0.0.1-commit.017a351
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/bigint-buffer/index.d.ts +1 -1
- package/dest/bigint-buffer/index.d.ts.map +1 -1
- package/dest/bigint-buffer/index.js +6 -1
- package/dest/branded-types/block_number.d.ts +3 -3
- package/dest/branded-types/block_number.d.ts.map +1 -1
- package/dest/branded-types/block_number.js +15 -4
- package/dest/branded-types/buffer32_hash.d.ts +27 -0
- package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
- package/dest/branded-types/buffer32_hash.js +12 -0
- package/dest/branded-types/checkpoint_number.d.ts +9 -3
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
- package/dest/branded-types/checkpoint_number.js +11 -0
- package/dest/branded-types/epoch.d.ts +2 -2
- package/dest/branded-types/epoch.d.ts.map +1 -1
- 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/index_within_checkpoint.d.ts +2 -2
- package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -1
- package/dest/branded-types/slot.d.ts +5 -2
- 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 +29 -63
- package/dest/collection/array.d.ts +11 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +33 -0
- package/dest/collection/index.d.ts +3 -1
- package/dest/collection/index.d.ts.map +1 -1
- package/dest/collection/index.js +2 -0
- package/dest/collection/lru_map.d.ts +41 -0
- package/dest/collection/lru_map.d.ts.map +1 -0
- package/dest/collection/lru_map.js +119 -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/committable/committable.js +1 -1
- 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 +47 -30
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +30 -45
- package/dest/config/network_config.d.ts +11 -55
- package/dest/config/network_config.d.ts.map +1 -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 +1 -3
- package/dest/config/secret_value.d.ts +2 -2
- package/dest/config/secret_value.d.ts.map +1 -1
- 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 +9 -176
- 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/schnorr/index.d.ts +8 -7
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +6 -6
- package/dest/crypto/schnorr/signature.d.ts +9 -29
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +20 -36
- package/dest/curves/bls12/field.d.ts +3 -3
- package/dest/curves/bls12/field.d.ts.map +1 -1
- package/dest/curves/bls12/field.js +0 -5
- package/dest/curves/bls12/point.d.ts +2 -2
- package/dest/curves/bls12/point.d.ts.map +1 -1
- package/dest/curves/bn254/field.d.ts +23 -19
- package/dest/curves/bn254/field.d.ts.map +1 -1
- package/dest/curves/bn254/field.js +23 -17
- package/dest/curves/grumpkin/point.d.ts +14 -28
- package/dest/curves/grumpkin/point.d.ts.map +1 -1
- package/dest/curves/grumpkin/point.js +29 -43
- package/dest/eth-address/index.d.ts +2 -2
- 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 -2
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- 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 +91 -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/fifo_set/fifo_set.d.ts +15 -0
- package/dest/fifo_set/fifo_set.d.ts.map +1 -0
- package/dest/fifo_set/fifo_set.js +39 -0
- package/dest/fifo_set/index.d.ts +2 -0
- package/dest/fifo_set/index.d.ts.map +1 -0
- package/dest/fifo_set/index.js +1 -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 +1 -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 +2 -2
- 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/fixtures/test_state.d.ts +4 -8
- package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/test_state.js +57 -17
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +27 -13
- 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 +17 -2
- package/dest/noir/noir_package_config.d.ts +19 -104
- package/dest/noir/noir_package_config.d.ts.map +1 -1
- package/dest/noir/noir_package_config.js +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 +12 -10
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/schemas/api.js +7 -1
- package/dest/schemas/parse.d.ts +4 -4
- package/dest/schemas/parse.d.ts.map +1 -1
- package/dest/schemas/parse.js +6 -5
- package/dest/schemas/schemas.d.ts +15 -15
- package/dest/schemas/types.d.ts +3 -3
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/utils.d.ts +7 -11
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +2 -18
- package/dest/serialize/buffer_sink.d.ts +134 -0
- package/dest/serialize/buffer_sink.d.ts.map +1 -0
- package/dest/serialize/buffer_sink.js +297 -0
- package/dest/serialize/index.d.ts +2 -1
- package/dest/serialize/index.d.ts.map +1 -1
- package/dest/serialize/index.js +1 -0
- package/dest/string/index.js +1 -1
- package/dest/timer/index.d.ts +2 -2
- package/dest/timer/index.d.ts.map +1 -1
- package/dest/timer/index.js +1 -1
- package/dest/timer/timeout.d.ts +3 -1
- package/dest/timer/timeout.d.ts.map +1 -1
- package/dest/timer/timeout.js +26 -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/trees/balanced_merkle_tree_root.d.ts +2 -3
- package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
- package/dest/trees/balanced_merkle_tree_root.js +2 -3
- package/dest/trees/hasher.d.ts +3 -2
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/hasher.js +5 -5
- 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/dest/trees/membership_witness.d.ts +2 -2
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.d.ts +4 -2
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +1 -5
- package/dest/trees/sibling_path.d.ts +5 -4
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +10 -8
- package/dest/trees/unbalanced_merkle_tree_root.d.ts +2 -3
- package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree_root.js +2 -3
- package/dest/types/index.d.ts +23 -1
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +15 -0
- package/package.json +6 -4
- package/src/bigint-buffer/index.ts +6 -1
- package/src/branded-types/block_number.ts +20 -2
- package/src/branded-types/buffer32_hash.ts +38 -0
- package/src/branded-types/checkpoint_number.ts +16 -1
- package/src/branded-types/epoch.ts +1 -1
- package/src/branded-types/index.ts +1 -0
- package/src/branded-types/index_within_checkpoint.ts +1 -1
- package/src/branded-types/slot.ts +6 -1
- package/src/buffer/buffer16.ts +3 -0
- package/src/buffer/buffer32.ts +39 -68
- package/src/collection/array.ts +34 -0
- package/src/collection/index.ts +2 -0
- package/src/collection/lru_map.ts +143 -0
- package/src/collection/lru_set.ts +115 -0
- package/src/committable/committable.ts +1 -1
- package/src/config/env_var.ts +27 -20
- package/src/config/index.ts +102 -97
- package/src/config/network_name.ts +2 -5
- package/src/config/secret_value.ts +1 -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/schnorr/index.ts +9 -8
- package/src/crypto/schnorr/signature.ts +17 -46
- package/src/curves/bls12/field.ts +0 -7
- package/src/curves/bn254/field.ts +35 -34
- package/src/curves/grumpkin/point.ts +23 -40
- package/src/eth-address/index.ts +0 -4
- package/src/fifo/fifo_frame_reader.ts +113 -0
- package/src/fifo/index.ts +1 -0
- package/src/fifo_set/fifo_set.ts +52 -0
- package/src/fifo_set/index.ts +1 -0
- package/src/json-rpc/client/fetch.ts +4 -3
- package/src/json-rpc/client/safe_json_rpc_client.ts +2 -2
- package/src/json-rpc/client/undici.ts +5 -3
- package/src/json-rpc/fixtures/test_state.ts +10 -10
- package/src/json-rpc/server/safe_json_rpc_server.ts +31 -13
- package/src/log/pino-logger.ts +19 -2
- package/src/noir/noir_package_config.ts +32 -20
- package/src/queue/batch_queue.ts +1 -0
- package/src/retry/index.ts +30 -0
- package/src/schemas/api.ts +25 -25
- package/src/schemas/parse.ts +9 -6
- package/src/schemas/schemas.ts +4 -4
- package/src/schemas/types.ts +2 -2
- package/src/schemas/utils.ts +4 -38
- package/src/serialize/buffer_sink.ts +350 -0
- package/src/serialize/index.ts +1 -0
- package/src/string/index.ts +1 -1
- package/src/timer/index.ts +1 -1
- package/src/timer/timeout.ts +31 -0
- package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
- package/src/transport/index.ts +0 -1
- package/src/trees/balanced_merkle_tree_root.ts +2 -5
- package/src/trees/hasher.ts +6 -3
- package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
- package/src/trees/merkle_tree_calculator.ts +4 -10
- package/src/trees/sibling_path.ts +11 -6
- package/src/trees/unbalanced_merkle_tree_root.ts +2 -5
- package/src/types/index.ts +47 -0
- 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,17 +1,18 @@
|
|
|
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'
|
|
8
7
|
| 'API_PREFIX'
|
|
9
|
-
| 'ARCHIVER_MAX_LOGS'
|
|
10
8
|
| 'ARCHIVER_POLLING_INTERVAL_MS'
|
|
9
|
+
| 'ARCHIVER_SKIP_HISTORICAL_LOGS_CHECK'
|
|
11
10
|
| 'ARCHIVER_URL'
|
|
12
11
|
| 'ARCHIVER_VIEM_POLLING_INTERVAL_MS'
|
|
13
12
|
| 'ARCHIVER_BATCH_SIZE'
|
|
13
|
+
| 'ARCHIVER_ORPHAN_PROPOSED_BLOCK_PRUNE_GRACE_SECONDS'
|
|
14
14
|
| 'AZTEC_ADMIN_PORT'
|
|
15
|
+
| 'AZTEC_NODE_DEBUG'
|
|
15
16
|
| 'AZTEC_ADMIN_API_KEY_HASH'
|
|
16
17
|
| 'AZTEC_DISABLE_ADMIN_API_KEY'
|
|
17
18
|
| 'AZTEC_RESET_ADMIN_API_KEY'
|
|
@@ -23,6 +24,9 @@ export type EnvVar =
|
|
|
23
24
|
| 'BB_WORKING_DIRECTORY'
|
|
24
25
|
| 'BB_NUM_IVC_VERIFIERS'
|
|
25
26
|
| 'BB_IVC_CONCURRENCY'
|
|
27
|
+
| 'BB_CHONK_VERIFY_MAX_BATCH'
|
|
28
|
+
| 'BB_CHONK_VERIFY_BATCH_CONCURRENCY'
|
|
29
|
+
| 'BB_DEBUG_OUTPUT_DIR'
|
|
26
30
|
| 'BOOTSTRAP_NODES'
|
|
27
31
|
| 'BLOB_ARCHIVE_API_URL'
|
|
28
32
|
| 'BLOB_FILE_STORE_URLS'
|
|
@@ -72,6 +76,7 @@ export type EnvVar =
|
|
|
72
76
|
| 'DEBUG'
|
|
73
77
|
| 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
|
|
74
78
|
| 'ENABLE_PROVER_NODE'
|
|
79
|
+
| 'USE_AUTOMINE_SEQUENCER'
|
|
75
80
|
| 'ETHEREUM_HOSTS'
|
|
76
81
|
| 'ETHEREUM_DEBUG_HOSTS'
|
|
77
82
|
| 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
|
|
@@ -92,14 +97,15 @@ export type EnvVar =
|
|
|
92
97
|
| 'MNEMONIC'
|
|
93
98
|
| 'NETWORK'
|
|
94
99
|
| 'NETWORK_CONFIG_LOCATION'
|
|
95
|
-
| 'NO_PXE'
|
|
96
100
|
| 'USE_GCLOUD_LOGGING'
|
|
97
101
|
| 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
|
|
98
102
|
| 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'
|
|
99
103
|
| 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'
|
|
100
104
|
| 'OTEL_COLLECT_INTERVAL_MS'
|
|
105
|
+
| 'OTEL_BSP_MAX_QUEUE_SIZE'
|
|
101
106
|
| 'OTEL_EXCLUDE_METRICS'
|
|
102
107
|
| 'OTEL_INCLUDE_METRICS'
|
|
108
|
+
| 'OTEL_MIN_TRACE_DURATION_MS'
|
|
103
109
|
| 'OTEL_EXPORT_TIMEOUT_MS'
|
|
104
110
|
| 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
|
|
105
111
|
| 'PUBLIC_OTEL_INCLUDE_METRICS'
|
|
@@ -131,8 +137,10 @@ export type EnvVar =
|
|
|
131
137
|
| 'P2P_L2_QUEUE_SIZE'
|
|
132
138
|
| 'P2P_MAX_PEERS'
|
|
133
139
|
| 'P2P_PEER_CHECK_INTERVAL_MS'
|
|
140
|
+
| 'P2P_PEER_FAILED_BAN_TIME_MS'
|
|
134
141
|
| 'P2P_PEER_PENALTY_VALUES'
|
|
135
142
|
| 'P2P_QUERY_FOR_IP'
|
|
143
|
+
| 'P2P_PUBLIC_IP_SERVICES'
|
|
136
144
|
| 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS'
|
|
137
145
|
| 'P2P_REQRESP_DIAL_TIMEOUT_MS'
|
|
138
146
|
| 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS'
|
|
@@ -154,7 +162,9 @@ export type EnvVar =
|
|
|
154
162
|
| 'P2P_DROP_TX_CHANCE'
|
|
155
163
|
| 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG'
|
|
156
164
|
| 'P2P_MIN_TX_POOL_AGE_MS'
|
|
165
|
+
| 'P2P_MISSING_TX_COLLECTION_DEADLINE_SLOTS'
|
|
157
166
|
| 'P2P_RPC_PRICE_BUMP_PERCENTAGE'
|
|
167
|
+
| 'P2P_TX_VALIDATION_CACHE_SIZE'
|
|
158
168
|
| 'DEBUG_P2P_INSTRUMENT_MESSAGES'
|
|
159
169
|
| 'PEER_ID_PRIVATE_KEY'
|
|
160
170
|
| 'PEER_ID_PRIVATE_KEY_PATH'
|
|
@@ -194,6 +204,7 @@ export type EnvVar =
|
|
|
194
204
|
| 'PROVER_TEST_DELAY_MS'
|
|
195
205
|
| 'PROVER_TEST_DELAY_TYPE'
|
|
196
206
|
| 'PROVER_TEST_VERIFICATION_DELAY_MS'
|
|
207
|
+
| 'PXE_AUTO_SYNC'
|
|
197
208
|
| 'PXE_L2_BLOCK_BATCH_SIZE'
|
|
198
209
|
| 'PXE_PROVER_ENABLED'
|
|
199
210
|
| 'PXE_SYNC_CHAIN_TIP'
|
|
@@ -203,7 +214,8 @@ export type EnvVar =
|
|
|
203
214
|
| 'RPC_SIMULATE_PUBLIC_MAX_DEBUG_LOG_MEMORY_READS'
|
|
204
215
|
| 'SENTINEL_ENABLED'
|
|
205
216
|
| 'SENTINEL_HISTORY_LENGTH_IN_EPOCHS'
|
|
206
|
-
| '
|
|
217
|
+
| 'SENTINEL_HISTORIC_EPOCH_PERFORMANCE_LENGTH_IN_EPOCHS'
|
|
218
|
+
| 'SENTINEL_EPOCH_END_BUFFER_SLOTS'
|
|
207
219
|
| 'SEQ_MAX_TX_PER_BLOCK'
|
|
208
220
|
| 'SEQ_MAX_TX_PER_CHECKPOINT'
|
|
209
221
|
| 'SEQ_MIN_TX_PER_BLOCK'
|
|
@@ -217,31 +229,34 @@ export type EnvVar =
|
|
|
217
229
|
| 'SEQ_PUBLISHER_ADDRESSES'
|
|
218
230
|
| 'SEQ_PUBLISHER_ALLOW_INVALID_STATES'
|
|
219
231
|
| 'SEQ_PUBLISHER_FORWARDER_ADDRESS'
|
|
232
|
+
| 'PUBLISHER_FUNDING_THRESHOLD'
|
|
233
|
+
| 'PUBLISHER_FUNDING_AMOUNT'
|
|
220
234
|
| 'SEQ_POLLING_INTERVAL_MS'
|
|
221
235
|
| 'SEQ_ENFORCE_TIME_TABLE'
|
|
222
236
|
| 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
|
|
223
237
|
| 'SEQ_ATTESTATION_PROPAGATION_TIME'
|
|
224
238
|
| 'SEQ_BLOCK_DURATION_MS'
|
|
239
|
+
| 'SEQ_LAST_BLOCK_DURATION_MS'
|
|
225
240
|
| 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT'
|
|
226
241
|
| 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
|
|
227
242
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
|
|
228
243
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
|
|
229
244
|
| 'SEQ_SKIP_CHECKPOINT_PUBLISH_PERCENT'
|
|
230
|
-
| 'SLASH_MIN_PENALTY_PERCENTAGE'
|
|
231
|
-
| 'SLASH_MAX_PENALTY_PERCENTAGE'
|
|
232
245
|
| 'SLASH_VALIDATORS_ALWAYS'
|
|
233
246
|
| 'SLASH_VALIDATORS_NEVER'
|
|
234
|
-
| 'SLASH_PRUNE_PENALTY'
|
|
235
247
|
| 'SLASH_DATA_WITHHOLDING_PENALTY'
|
|
248
|
+
| 'SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS'
|
|
236
249
|
| 'SLASH_INACTIVITY_PENALTY'
|
|
237
250
|
| 'SLASH_INACTIVITY_TARGET_PERCENTAGE'
|
|
238
251
|
| 'SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD'
|
|
239
252
|
| 'SLASH_INVALID_BLOCK_PENALTY'
|
|
253
|
+
| 'SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY'
|
|
240
254
|
| 'SLASH_DUPLICATE_PROPOSAL_PENALTY'
|
|
241
255
|
| 'SLASH_DUPLICATE_ATTESTATION_PENALTY'
|
|
242
256
|
| 'SLASH_OVERRIDE_PAYLOAD'
|
|
243
257
|
| 'SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY'
|
|
244
|
-
| '
|
|
258
|
+
| 'SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY'
|
|
259
|
+
| 'SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY'
|
|
245
260
|
| 'SLASH_UNKNOWN_PENALTY'
|
|
246
261
|
| 'SLASH_GRACE_PERIOD_L2_SLOTS'
|
|
247
262
|
| 'SLASH_OFFENSE_EXPIRATION_ROUNDS'
|
|
@@ -255,25 +270,16 @@ export type EnvVar =
|
|
|
255
270
|
| 'SPONSORED_FPC'
|
|
256
271
|
| 'PREFUND_ADDRESSES'
|
|
257
272
|
| 'TX_COLLECTION_FAST_NODES_TIMEOUT_BEFORE_REQ_RESP_MS'
|
|
258
|
-
| 'TX_COLLECTION_SLOW_NODES_INTERVAL_MS'
|
|
259
|
-
| 'TX_COLLECTION_SLOW_REQ_RESP_INTERVAL_MS'
|
|
260
|
-
| 'TX_COLLECTION_SLOW_REQ_RESP_TIMEOUT_MS'
|
|
261
|
-
| 'TX_COLLECTION_RECONCILE_INTERVAL_MS'
|
|
262
|
-
| 'TX_COLLECTION_DISABLE_SLOW_DURING_FAST_REQUESTS'
|
|
263
273
|
| 'TX_COLLECTION_FAST_NODE_INTERVAL_MS'
|
|
264
274
|
| 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE'
|
|
265
275
|
| 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE'
|
|
266
276
|
| 'TX_COLLECTION_NODE_RPC_URLS'
|
|
267
277
|
| 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE'
|
|
268
278
|
| 'TX_COLLECTION_FILE_STORE_URLS'
|
|
269
|
-
| 'TX_COLLECTION_FILE_STORE_SLOW_DELAY_MS'
|
|
270
279
|
| 'TX_COLLECTION_FILE_STORE_FAST_DELAY_MS'
|
|
271
280
|
| 'TX_COLLECTION_FILE_STORE_FAST_WORKER_COUNT'
|
|
272
|
-
| 'TX_COLLECTION_FILE_STORE_SLOW_WORKER_COUNT'
|
|
273
281
|
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_BASE_MS'
|
|
274
|
-
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_BASE_MS'
|
|
275
282
|
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_MAX_MS'
|
|
276
|
-
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_MAX_MS'
|
|
277
283
|
| 'TX_FILE_STORE_URL'
|
|
278
284
|
| 'TX_FILE_STORE_UPLOAD_CONCURRENCY'
|
|
279
285
|
| 'TX_FILE_STORE_MAX_QUEUE_SIZE'
|
|
@@ -289,7 +295,6 @@ export type EnvVar =
|
|
|
289
295
|
| 'VALIDATOR_MAX_TX_PER_CHECKPOINT'
|
|
290
296
|
| 'VALIDATOR_PRIVATE_KEYS'
|
|
291
297
|
| 'VALIDATOR_PRIVATE_KEY'
|
|
292
|
-
| 'VALIDATOR_REEXECUTE'
|
|
293
298
|
| 'VALIDATOR_ADDRESSES'
|
|
294
299
|
| 'ROLLUP_VERSION'
|
|
295
300
|
| 'WS_BLOCK_CHECK_INTERVAL_MS'
|
|
@@ -322,7 +327,7 @@ export type EnvVar =
|
|
|
322
327
|
| 'AZTEC_SLASH_AMOUNT_SMALL'
|
|
323
328
|
| 'AZTEC_SLASH_AMOUNT_MEDIUM'
|
|
324
329
|
| 'AZTEC_SLASH_AMOUNT_LARGE'
|
|
325
|
-
| '
|
|
330
|
+
| 'AZTEC_SLASHER_ENABLED'
|
|
326
331
|
| 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
|
|
327
332
|
| 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
|
|
328
333
|
| 'AZTEC_GOVERNANCE_VOTING_DURATION'
|
|
@@ -352,12 +357,14 @@ export type EnvVar =
|
|
|
352
357
|
| 'K8S_POD_UID'
|
|
353
358
|
| 'K8S_NAMESPACE_NAME'
|
|
354
359
|
| 'ENABLE_VERSION_CHECK'
|
|
355
|
-
| 'VALIDATOR_REEXECUTE_DEADLINE_MS'
|
|
356
360
|
| 'WEB3_SIGNER_URL'
|
|
357
361
|
| 'SKIP_ARCHIVER_INITIAL_SYNC'
|
|
358
362
|
| 'BLOB_ALLOW_EMPTY_SOURCES'
|
|
363
|
+
| 'BLOB_PREFER_FILESTORES'
|
|
364
|
+
| 'BLOB_FILE_STORE_TIMEOUT_MS'
|
|
359
365
|
| 'FISHERMAN_MODE'
|
|
360
366
|
| 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS'
|
|
367
|
+
| 'MAX_BLOCKS_PER_CHECKPOINT'
|
|
361
368
|
| 'LEGACY_BLS_CLI'
|
|
362
369
|
| 'DEBUG_FORCE_TX_PROOF_VERIFICATION'
|
|
363
370
|
| 'VALIDATOR_HA_SIGNING_ENABLED'
|
package/src/config/index.ts
CHANGED
|
@@ -10,14 +10,14 @@ 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
21
|
fallback?: EnvVar[];
|
|
22
22
|
/**
|
|
23
23
|
* List of deprecated env vars that are still supported but will log a warning.
|
|
@@ -30,7 +30,9 @@ export function isBooleanConfigValue<T>(obj: T, key: keyof T): boolean {
|
|
|
30
30
|
return typeof obj[key] === 'boolean';
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
export type ConfigMappingsType<T> =
|
|
33
|
+
export type ConfigMappingsType<T> = {
|
|
34
|
+
[K in keyof T]-?: ConfigMapping<Required<T>[K]>;
|
|
35
|
+
};
|
|
34
36
|
|
|
35
37
|
/**
|
|
36
38
|
* Shared utility function to get a value from environment variables with fallback support.
|
|
@@ -66,8 +68,8 @@ export function getValueFromEnvWithFallback<T>(
|
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
|
|
69
|
-
// Parse the value if needed
|
|
70
|
-
if (value !== undefined) {
|
|
71
|
+
// Parse the value if needed. Empty strings are treated as "not set".
|
|
72
|
+
if (value !== undefined && value !== '') {
|
|
71
73
|
return parseFunc ? parseFunc(value) : (value as unknown as T);
|
|
72
74
|
}
|
|
73
75
|
|
|
@@ -79,22 +81,20 @@ export function getConfigFromMappings<T>(configMappings: ConfigMappingsType<T>):
|
|
|
79
81
|
const config = {} as T;
|
|
80
82
|
|
|
81
83
|
for (const key in configMappings) {
|
|
82
|
-
const { env, parseEnv, defaultValue,
|
|
83
|
-
|
|
84
|
-
(config as any)[key] = getConfigFromMappings(nested);
|
|
85
|
-
} else {
|
|
86
|
-
// Use the shared utility function
|
|
84
|
+
const { env, parseEnv, defaultValue, fallback, deprecatedFallback } = configMappings[key];
|
|
85
|
+
try {
|
|
87
86
|
(config as any)[key] = getValueFromEnvWithFallback(env, parseEnv, defaultValue, fallback);
|
|
87
|
+
} catch (e: any) {
|
|
88
|
+
throw new Error(`Failed to parse config '${key}' (env: ${env ?? 'none'}): ${e.message}`);
|
|
89
|
+
}
|
|
88
90
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
userLog(warningMessage, { deprecatedEnvVar: deprecatedEnv, newEnvVar: env });
|
|
97
|
-
}
|
|
91
|
+
if (deprecatedFallback?.length) {
|
|
92
|
+
const userLog = createConsoleLogger('[DEPRECATED]');
|
|
93
|
+
for (const { env: deprecatedEnv, message } of deprecatedFallback) {
|
|
94
|
+
if (process.env[deprecatedEnv]) {
|
|
95
|
+
const warningMessage =
|
|
96
|
+
message ?? `Environment variable ${deprecatedEnv} is deprecated. Please use ${env} instead.`;
|
|
97
|
+
userLog(warningMessage, { deprecatedEnvVar: deprecatedEnv, newEnvVar: env });
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
}
|
|
@@ -123,7 +123,7 @@ export function omitConfigMappings<T, K extends keyof T>(
|
|
|
123
123
|
* @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
|
|
124
124
|
* @returns Object with parseEnv and default values for a numerical config value
|
|
125
125
|
*/
|
|
126
|
-
export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping
|
|
126
|
+
export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping<number>, 'parseEnv' | 'defaultValue'> {
|
|
127
127
|
return {
|
|
128
128
|
parseEnv: (val: string) => safeParseNumber(val, defaultVal),
|
|
129
129
|
defaultValue: defaultVal,
|
|
@@ -138,7 +138,7 @@ export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping, 'par
|
|
|
138
138
|
export function floatConfigHelper(
|
|
139
139
|
defaultVal: number,
|
|
140
140
|
validationFn?: (val: number) => void,
|
|
141
|
-
): Pick<ConfigMapping
|
|
141
|
+
): Pick<ConfigMapping<number>, 'parseEnv' | 'defaultValue'> {
|
|
142
142
|
return {
|
|
143
143
|
parseEnv: (val: string): number => {
|
|
144
144
|
const parsed = safeParseFloat(val, defaultVal);
|
|
@@ -152,7 +152,7 @@ export function floatConfigHelper(
|
|
|
152
152
|
/**
|
|
153
153
|
* Parses an environment variable to a 0-1 percentage value
|
|
154
154
|
*/
|
|
155
|
-
export function percentageConfigHelper(defaultVal: number): Pick<ConfigMapping
|
|
155
|
+
export function percentageConfigHelper(defaultVal: number): Pick<ConfigMapping<number>, 'parseEnv' | 'defaultValue'> {
|
|
156
156
|
return {
|
|
157
157
|
parseEnv: (val: string): number => {
|
|
158
158
|
const parsed = safeParseFloat(val, defaultVal);
|
|
@@ -171,12 +171,13 @@ export function percentageConfigHelper(defaultVal: number): Pick<ConfigMapping,
|
|
|
171
171
|
* @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
|
|
172
172
|
* @returns Object with parseEnv and default values for a numerical config value
|
|
173
173
|
*/
|
|
174
|
-
export function bigintConfigHelper(defaultVal
|
|
174
|
+
export function bigintConfigHelper(defaultVal: bigint): Pick<ConfigMapping<bigint>, 'parseEnv' | 'defaultValue'>;
|
|
175
|
+
export function bigintConfigHelper(): Pick<ConfigMapping<bigint | undefined>, 'parseEnv' | 'defaultValue'>;
|
|
176
|
+
export function bigintConfigHelper(
|
|
177
|
+
defaultVal?: bigint,
|
|
178
|
+
): Pick<ConfigMapping<bigint | undefined>, 'parseEnv' | 'defaultValue'> {
|
|
175
179
|
return {
|
|
176
180
|
parseEnv: (val: string) => {
|
|
177
|
-
if (val === '') {
|
|
178
|
-
return defaultVal;
|
|
179
|
-
}
|
|
180
181
|
// Handle scientific notation (e.g. "1e+23", "2E23") which BigInt() doesn't accept directly.
|
|
181
182
|
// We parse it losslessly using bigint arithmetic instead of going through float64.
|
|
182
183
|
if (/[eE]/.test(val)) {
|
|
@@ -200,32 +201,37 @@ export function bigintConfigHelper(defaultVal?: bigint): Pick<ConfigMapping, 'pa
|
|
|
200
201
|
|
|
201
202
|
/**
|
|
202
203
|
* Generates parseEnv for an optional numerical config value.
|
|
204
|
+
* Empty strings are already handled by getValueFromEnvWithFallback.
|
|
203
205
|
*/
|
|
204
|
-
export function optionalNumberConfigHelper(): Pick<ConfigMapping
|
|
206
|
+
export function optionalNumberConfigHelper(): Pick<ConfigMapping<number>, 'parseEnv'> {
|
|
205
207
|
return {
|
|
206
|
-
parseEnv: (val: string
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
parseEnv: (val: string) => {
|
|
209
|
+
const parsedValue = parseInt(val);
|
|
210
|
+
if (!Number.isSafeInteger(parsedValue)) {
|
|
211
|
+
throw new Error(`Invalid number: ${val}`);
|
|
210
212
|
}
|
|
211
|
-
return
|
|
213
|
+
return parsedValue;
|
|
212
214
|
},
|
|
213
215
|
};
|
|
214
216
|
}
|
|
215
217
|
|
|
216
218
|
/** Generates parseEnv for an enum-like config value. */
|
|
219
|
+
export function enumConfigHelper<T extends string>(
|
|
220
|
+
values: T[],
|
|
221
|
+
defaultValue: NoInfer<T>,
|
|
222
|
+
): Pick<ConfigMapping<T>, 'parseEnv' | 'defaultValue'>;
|
|
223
|
+
export function enumConfigHelper<T extends string>(
|
|
224
|
+
values: T[],
|
|
225
|
+
): Pick<ConfigMapping<T | undefined>, 'parseEnv' | 'defaultValue'>;
|
|
217
226
|
export function enumConfigHelper<T extends string>(
|
|
218
227
|
values: T[],
|
|
219
228
|
defaultValue?: NoInfer<T>,
|
|
220
|
-
): Pick<ConfigMapping
|
|
229
|
+
): Pick<ConfigMapping<T | undefined>, 'parseEnv' | 'defaultValue'> {
|
|
221
230
|
return {
|
|
222
231
|
parseEnv: (val: string) => {
|
|
223
|
-
const sanitizedVal =
|
|
224
|
-
if (values.
|
|
225
|
-
return
|
|
226
|
-
}
|
|
227
|
-
if (!val && defaultValue) {
|
|
228
|
-
return defaultValue;
|
|
232
|
+
const sanitizedVal = val.trim().toLowerCase();
|
|
233
|
+
if (values.some(v => v.toLowerCase() === sanitizedVal)) {
|
|
234
|
+
return values.find(v => v.toLowerCase() === sanitizedVal)!;
|
|
229
235
|
}
|
|
230
236
|
throw new Error(`Invalid config value '${val}' (must be one of ${values.join(', ')})`);
|
|
231
237
|
},
|
|
@@ -240,7 +246,9 @@ export function enumConfigHelper<T extends string>(
|
|
|
240
246
|
*/
|
|
241
247
|
export function booleanConfigHelper(
|
|
242
248
|
defaultVal = false,
|
|
243
|
-
): Required<
|
|
249
|
+
): Required<
|
|
250
|
+
Pick<ConfigMapping<boolean>, 'parseEnv' | 'defaultValue' | 'isBoolean'> & { parseVal: (val: string) => boolean }
|
|
251
|
+
> {
|
|
244
252
|
const parse = (val: string | boolean) => (typeof val === 'boolean' ? val : parseBooleanEnv(val));
|
|
245
253
|
return {
|
|
246
254
|
parseEnv: parse,
|
|
@@ -250,91 +258,88 @@ export function booleanConfigHelper(
|
|
|
250
258
|
};
|
|
251
259
|
}
|
|
252
260
|
|
|
253
|
-
export function secretValueConfigHelper<T>(parse: (val: string | undefined) => T):
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
261
|
+
export function secretValueConfigHelper<T>(parse: (val: string | undefined) => T): Pick<
|
|
262
|
+
ConfigMapping<SecretValue<T>>,
|
|
263
|
+
'parseEnv' | 'defaultValue'
|
|
264
|
+
> & {
|
|
265
|
+
parseVal: (val: string) => SecretValue<T>;
|
|
266
|
+
} {
|
|
258
267
|
const wrap = (val: string) => new SecretValue(parse(val));
|
|
259
268
|
return {
|
|
260
269
|
parseEnv: wrap,
|
|
261
270
|
parseVal: wrap,
|
|
262
271
|
defaultValue: new SecretValue(parse(undefined)),
|
|
263
|
-
isBoolean: true,
|
|
264
272
|
};
|
|
265
273
|
}
|
|
266
274
|
|
|
267
275
|
export { parseBooleanEnv } from './parse-env.js';
|
|
268
276
|
|
|
269
|
-
export function secretStringConfigHelper():
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
export function secretStringConfigHelper(defaultValue: string):
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
export function secretStringConfigHelper(defaultValue?: string):
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
277
|
+
export function secretStringConfigHelper(): {
|
|
278
|
+
parseEnv: (val: string) => SecretValue<string>;
|
|
279
|
+
parseVal: (val: string) => SecretValue<string>;
|
|
280
|
+
defaultValue: undefined;
|
|
281
|
+
};
|
|
282
|
+
export function secretStringConfigHelper(defaultValue: string): {
|
|
283
|
+
parseEnv: (val: string) => SecretValue<string>;
|
|
284
|
+
parseVal: (val: string) => SecretValue<string>;
|
|
285
|
+
defaultValue: SecretValue<string>;
|
|
286
|
+
};
|
|
287
|
+
export function secretStringConfigHelper(defaultValue?: string): {
|
|
288
|
+
parseEnv: (val: string) => SecretValue<string>;
|
|
289
|
+
parseVal: (val: string) => SecretValue<string>;
|
|
290
|
+
defaultValue: SecretValue<string> | undefined;
|
|
291
|
+
} {
|
|
284
292
|
const parse = (val: string) => new SecretValue(val);
|
|
285
293
|
return {
|
|
286
294
|
parseEnv: parse,
|
|
287
295
|
parseVal: parse,
|
|
288
296
|
defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
|
|
289
|
-
isBoolean: true,
|
|
290
297
|
};
|
|
291
298
|
}
|
|
292
299
|
|
|
293
|
-
export function secretFrConfigHelper():
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
export function secretFrConfigHelper(defaultValue: Fr):
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
export function secretFrConfigHelper(defaultValue?: Fr):
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
300
|
+
export function secretFrConfigHelper(): {
|
|
301
|
+
parseEnv: (val: string) => SecretValue<Fr>;
|
|
302
|
+
parseVal: (val: string) => SecretValue<Fr>;
|
|
303
|
+
defaultValue: undefined;
|
|
304
|
+
};
|
|
305
|
+
export function secretFrConfigHelper(defaultValue: Fr): {
|
|
306
|
+
parseEnv: (val: string) => SecretValue<Fr>;
|
|
307
|
+
parseVal: (val: string) => SecretValue<Fr>;
|
|
308
|
+
defaultValue: SecretValue<Fr>;
|
|
309
|
+
};
|
|
310
|
+
export function secretFrConfigHelper(defaultValue?: Fr): {
|
|
311
|
+
parseEnv: (val: string) => SecretValue<Fr>;
|
|
312
|
+
parseVal: (val: string) => SecretValue<Fr>;
|
|
313
|
+
defaultValue: SecretValue<Fr> | undefined;
|
|
314
|
+
} {
|
|
308
315
|
const parse = (val: string) => new SecretValue(Fr.fromHexString(val));
|
|
309
316
|
return {
|
|
310
317
|
parseEnv: parse,
|
|
311
318
|
parseVal: parse,
|
|
312
319
|
defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
|
|
313
|
-
isBoolean: true,
|
|
314
320
|
};
|
|
315
321
|
}
|
|
316
322
|
|
|
317
|
-
export function secretFqConfigHelper(
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
export function secretFqConfigHelper():
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
export function secretFqConfigHelper(defaultValue?: Fq):
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
323
|
+
export function secretFqConfigHelper(): {
|
|
324
|
+
parseEnv: (val: string) => SecretValue<Fq>;
|
|
325
|
+
parseVal: (val: string) => SecretValue<Fq>;
|
|
326
|
+
defaultValue: undefined;
|
|
327
|
+
};
|
|
328
|
+
export function secretFqConfigHelper(defaultValue: Fq): {
|
|
329
|
+
parseEnv: (val: string) => SecretValue<Fq>;
|
|
330
|
+
parseVal: (val: string) => SecretValue<Fq>;
|
|
331
|
+
defaultValue: SecretValue<Fq>;
|
|
332
|
+
};
|
|
333
|
+
export function secretFqConfigHelper(defaultValue?: Fq): {
|
|
334
|
+
parseEnv: (val: string) => SecretValue<Fq>;
|
|
335
|
+
parseVal: (val: string) => SecretValue<Fq>;
|
|
336
|
+
defaultValue: SecretValue<Fq> | undefined;
|
|
337
|
+
} {
|
|
332
338
|
const parse = (val: string) => new SecretValue(Fq.fromHexString(val));
|
|
333
339
|
return {
|
|
334
340
|
parseEnv: parse,
|
|
335
341
|
parseVal: parse,
|
|
336
|
-
defaultValue:
|
|
337
|
-
isBoolean: true,
|
|
342
|
+
defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
|
|
338
343
|
};
|
|
339
344
|
}
|
|
340
345
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export type NetworkNames =
|
|
2
2
|
| 'local'
|
|
3
|
-
| 'staging
|
|
4
|
-
| 'staging-public'
|
|
3
|
+
| 'staging'
|
|
5
4
|
| 'testnet'
|
|
6
5
|
| 'mainnet'
|
|
7
6
|
| 'next-net'
|
|
@@ -12,9 +11,7 @@ export function getActiveNetworkName(name?: string): NetworkNames {
|
|
|
12
11
|
const network = name || process.env.NETWORK;
|
|
13
12
|
if (!network || network === '' || network === 'local') {
|
|
14
13
|
return 'local';
|
|
15
|
-
} else if (network === 'staging
|
|
16
|
-
return network;
|
|
17
|
-
} else if (network === 'staging-public') {
|
|
14
|
+
} else if (network === 'staging') {
|
|
18
15
|
return network;
|
|
19
16
|
} else if (network === 'testnet' || network === 'alpha-testnet') {
|
|
20
17
|
return 'testnet';
|
|
@@ -43,7 +43,7 @@ export class SecretValue<T> {
|
|
|
43
43
|
/**
|
|
44
44
|
* Returns a Zod schema
|
|
45
45
|
*/
|
|
46
|
-
static schema<O>(valueSchema: ZodType<O, any
|
|
46
|
+
static schema<O>(valueSchema: ZodType<O, any>): ZodType<SecretValue<O>, any> {
|
|
47
47
|
return valueSchema.transform(value => new SecretValue<O>(value));
|
|
48
48
|
}
|
|
49
49
|
}
|