@aztec/foundation 5.0.0-private.20260319 → 5.0.0-rc.2
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 +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/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 +31 -3
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +44 -2
- 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 -6
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +0 -9
- 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 +39 -24
- 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 +98 -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 +66 -4
- 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/membership_witness.ts +0 -8
- 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
package/src/config/env_var.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
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_PRUNE_NO_PROPOSAL_TOLERANCE'
|
|
14
|
+
| 'ARCHIVER_SKIP_ORPHAN_PROPOSED_BLOCK_PRUNING'
|
|
14
15
|
| 'AZTEC_ADMIN_PORT'
|
|
16
|
+
| 'AZTEC_NODE_DEBUG'
|
|
15
17
|
| 'AZTEC_ADMIN_API_KEY_HASH'
|
|
16
18
|
| 'AZTEC_DISABLE_ADMIN_API_KEY'
|
|
17
19
|
| 'AZTEC_RESET_ADMIN_API_KEY'
|
|
@@ -23,6 +25,9 @@ export type EnvVar =
|
|
|
23
25
|
| 'BB_WORKING_DIRECTORY'
|
|
24
26
|
| 'BB_NUM_IVC_VERIFIERS'
|
|
25
27
|
| 'BB_IVC_CONCURRENCY'
|
|
28
|
+
| 'BB_CHONK_VERIFY_MAX_BATCH'
|
|
29
|
+
| 'BB_CHONK_VERIFY_BATCH_CONCURRENCY'
|
|
30
|
+
| 'BB_DEBUG_OUTPUT_DIR'
|
|
26
31
|
| 'BOOTSTRAP_NODES'
|
|
27
32
|
| 'BLOB_ARCHIVE_API_URL'
|
|
28
33
|
| 'BLOB_FILE_STORE_URLS'
|
|
@@ -72,6 +77,8 @@ export type EnvVar =
|
|
|
72
77
|
| 'DEBUG'
|
|
73
78
|
| 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
|
|
74
79
|
| 'ENABLE_PROVER_NODE'
|
|
80
|
+
| 'USE_AUTOMINE_SEQUENCER'
|
|
81
|
+
| 'AUTOMINE_ENABLE_PROVE_EPOCH'
|
|
75
82
|
| 'ETHEREUM_HOSTS'
|
|
76
83
|
| 'ETHEREUM_DEBUG_HOSTS'
|
|
77
84
|
| 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
|
|
@@ -92,14 +99,16 @@ export type EnvVar =
|
|
|
92
99
|
| 'MNEMONIC'
|
|
93
100
|
| 'NETWORK'
|
|
94
101
|
| 'NETWORK_CONFIG_LOCATION'
|
|
95
|
-
| '
|
|
102
|
+
| 'ALLOW_OVERRIDING_NETWORK_CONFIG'
|
|
96
103
|
| 'USE_GCLOUD_LOGGING'
|
|
97
104
|
| 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
|
|
98
105
|
| 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'
|
|
99
106
|
| 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'
|
|
100
107
|
| 'OTEL_COLLECT_INTERVAL_MS'
|
|
108
|
+
| 'OTEL_BSP_MAX_QUEUE_SIZE'
|
|
101
109
|
| 'OTEL_EXCLUDE_METRICS'
|
|
102
110
|
| 'OTEL_INCLUDE_METRICS'
|
|
111
|
+
| 'OTEL_MIN_TRACE_DURATION_MS'
|
|
103
112
|
| 'OTEL_EXPORT_TIMEOUT_MS'
|
|
104
113
|
| 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
|
|
105
114
|
| 'PUBLIC_OTEL_INCLUDE_METRICS'
|
|
@@ -110,7 +119,6 @@ export type EnvVar =
|
|
|
110
119
|
| 'P2P_BATCH_TX_REQUESTER_TX_BATCH_SIZE'
|
|
111
120
|
| 'P2P_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD'
|
|
112
121
|
| 'P2P_BLOCK_CHECK_INTERVAL_MS'
|
|
113
|
-
| 'P2P_SLOT_CHECK_INTERVAL_MS'
|
|
114
122
|
| 'P2P_BLOCK_REQUEST_BATCH_SIZE'
|
|
115
123
|
| 'P2P_BOOTSTRAP_NODE_ENR_VERSION_CHECK'
|
|
116
124
|
| 'P2P_BOOTSTRAP_NODES_AS_FULL_PEERS'
|
|
@@ -129,11 +137,14 @@ export type EnvVar =
|
|
|
129
137
|
| 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT'
|
|
130
138
|
| 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT'
|
|
131
139
|
| 'P2P_L2_QUEUE_SIZE'
|
|
140
|
+
| 'P2P_MAX_GOSSIP_CLOCK_DISPARITY_MS'
|
|
132
141
|
| 'P2P_MAX_PEERS'
|
|
142
|
+
| 'P2P_PEER_BAN_DURATION_SECONDS'
|
|
133
143
|
| 'P2P_PEER_CHECK_INTERVAL_MS'
|
|
134
144
|
| 'P2P_PEER_FAILED_BAN_TIME_MS'
|
|
135
145
|
| 'P2P_PEER_PENALTY_VALUES'
|
|
136
146
|
| 'P2P_QUERY_FOR_IP'
|
|
147
|
+
| 'P2P_PUBLIC_IP_SERVICES'
|
|
137
148
|
| 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS'
|
|
138
149
|
| 'P2P_REQRESP_DIAL_TIMEOUT_MS'
|
|
139
150
|
| 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS'
|
|
@@ -155,7 +166,9 @@ export type EnvVar =
|
|
|
155
166
|
| 'P2P_DROP_TX_CHANCE'
|
|
156
167
|
| 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG'
|
|
157
168
|
| 'P2P_MIN_TX_POOL_AGE_MS'
|
|
169
|
+
| 'P2P_MISSING_TX_COLLECTION_DEADLINE_SLOTS'
|
|
158
170
|
| 'P2P_RPC_PRICE_BUMP_PERCENTAGE'
|
|
171
|
+
| 'P2P_TX_VALIDATION_CACHE_SIZE'
|
|
159
172
|
| 'DEBUG_P2P_INSTRUMENT_MESSAGES'
|
|
160
173
|
| 'PEER_ID_PRIVATE_KEY'
|
|
161
174
|
| 'PEER_ID_PRIVATE_KEY_PATH'
|
|
@@ -195,6 +208,7 @@ export type EnvVar =
|
|
|
195
208
|
| 'PROVER_TEST_DELAY_MS'
|
|
196
209
|
| 'PROVER_TEST_DELAY_TYPE'
|
|
197
210
|
| 'PROVER_TEST_VERIFICATION_DELAY_MS'
|
|
211
|
+
| 'PXE_AUTO_SYNC'
|
|
198
212
|
| 'PXE_L2_BLOCK_BATCH_SIZE'
|
|
199
213
|
| 'PXE_PROVER_ENABLED'
|
|
200
214
|
| 'PXE_SYNC_CHAIN_TIP'
|
|
@@ -202,10 +216,11 @@ export type EnvVar =
|
|
|
202
216
|
| 'RPC_MAX_BODY_SIZE'
|
|
203
217
|
| 'RPC_SIMULATE_PUBLIC_MAX_GAS_LIMIT'
|
|
204
218
|
| 'RPC_SIMULATE_PUBLIC_MAX_DEBUG_LOG_MEMORY_READS'
|
|
219
|
+
| 'OFFENSE_COLLECTION_ENABLED'
|
|
205
220
|
| 'SENTINEL_ENABLED'
|
|
206
221
|
| 'SENTINEL_HISTORY_LENGTH_IN_EPOCHS'
|
|
207
|
-
| '
|
|
208
|
-
| '
|
|
222
|
+
| 'SENTINEL_HISTORIC_EPOCH_PERFORMANCE_LENGTH_IN_EPOCHS'
|
|
223
|
+
| 'SENTINEL_EPOCH_END_BUFFER_SLOTS'
|
|
209
224
|
| 'SEQ_MAX_TX_PER_BLOCK'
|
|
210
225
|
| 'SEQ_MAX_TX_PER_CHECKPOINT'
|
|
211
226
|
| 'SEQ_MIN_TX_PER_BLOCK'
|
|
@@ -213,37 +228,45 @@ export type EnvVar =
|
|
|
213
228
|
| 'SEQ_MAX_DA_BLOCK_GAS'
|
|
214
229
|
| 'SEQ_MAX_L2_BLOCK_GAS'
|
|
215
230
|
| 'SEQ_PER_BLOCK_ALLOCATION_MULTIPLIER'
|
|
231
|
+
| 'SEQ_PER_BLOCK_DA_ALLOCATION_MULTIPLIER'
|
|
216
232
|
| 'SEQ_REDISTRIBUTE_CHECKPOINT_BUDGET'
|
|
217
233
|
| 'SEQ_PUBLISHER_PRIVATE_KEY'
|
|
218
234
|
| 'SEQ_PUBLISHER_PRIVATE_KEYS'
|
|
219
235
|
| 'SEQ_PUBLISHER_ADDRESSES'
|
|
220
236
|
| 'SEQ_PUBLISHER_ALLOW_INVALID_STATES'
|
|
221
237
|
| 'SEQ_PUBLISHER_FORWARDER_ADDRESS'
|
|
238
|
+
| 'SEQ_PUBLISHER_PREVIOUS_L1_BLOCK_WAIT_TIMEOUT_MS'
|
|
239
|
+
| 'SEQ_PUBLISHER_PREVIOUS_L1_BLOCK_WAIT_POLL_INTERVAL_MS'
|
|
240
|
+
| 'PUBLISHER_FUNDING_THRESHOLD'
|
|
241
|
+
| 'PUBLISHER_FUNDING_AMOUNT'
|
|
222
242
|
| 'SEQ_POLLING_INTERVAL_MS'
|
|
223
|
-
| 'SEQ_ENFORCE_TIME_TABLE'
|
|
224
243
|
| 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
|
|
225
244
|
| 'SEQ_ATTESTATION_PROPAGATION_TIME'
|
|
245
|
+
| 'SEQ_CHECKPOINT_PROPOSAL_PREPARE_TIME'
|
|
246
|
+
| 'CHECKPOINT_PROPOSAL_SYNC_GRACE_SECONDS'
|
|
247
|
+
| 'SEQ_MIN_BLOCK_DURATION'
|
|
226
248
|
| 'SEQ_BLOCK_DURATION_MS'
|
|
249
|
+
| 'SEQ_LAST_BLOCK_DURATION_MS'
|
|
227
250
|
| 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT'
|
|
228
251
|
| 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
|
|
229
252
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
|
|
230
253
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
|
|
231
254
|
| 'SEQ_SKIP_CHECKPOINT_PUBLISH_PERCENT'
|
|
232
|
-
| 'SLASH_MIN_PENALTY_PERCENTAGE'
|
|
233
|
-
| 'SLASH_MAX_PENALTY_PERCENTAGE'
|
|
234
255
|
| 'SLASH_VALIDATORS_ALWAYS'
|
|
235
256
|
| 'SLASH_VALIDATORS_NEVER'
|
|
236
|
-
| 'SLASH_PRUNE_PENALTY'
|
|
237
257
|
| 'SLASH_DATA_WITHHOLDING_PENALTY'
|
|
258
|
+
| 'SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS'
|
|
238
259
|
| 'SLASH_INACTIVITY_PENALTY'
|
|
239
260
|
| 'SLASH_INACTIVITY_TARGET_PERCENTAGE'
|
|
240
261
|
| 'SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD'
|
|
241
262
|
| 'SLASH_INVALID_BLOCK_PENALTY'
|
|
263
|
+
| 'SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY'
|
|
242
264
|
| 'SLASH_DUPLICATE_PROPOSAL_PENALTY'
|
|
243
265
|
| 'SLASH_DUPLICATE_ATTESTATION_PENALTY'
|
|
244
266
|
| 'SLASH_OVERRIDE_PAYLOAD'
|
|
245
267
|
| 'SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY'
|
|
246
|
-
| '
|
|
268
|
+
| 'SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY'
|
|
269
|
+
| 'SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY'
|
|
247
270
|
| 'SLASH_UNKNOWN_PENALTY'
|
|
248
271
|
| 'SLASH_GRACE_PERIOD_L2_SLOTS'
|
|
249
272
|
| 'SLASH_OFFENSE_EXPIRATION_ROUNDS'
|
|
@@ -257,25 +280,16 @@ export type EnvVar =
|
|
|
257
280
|
| 'SPONSORED_FPC'
|
|
258
281
|
| 'PREFUND_ADDRESSES'
|
|
259
282
|
| 'TX_COLLECTION_FAST_NODES_TIMEOUT_BEFORE_REQ_RESP_MS'
|
|
260
|
-
| 'TX_COLLECTION_SLOW_NODES_INTERVAL_MS'
|
|
261
|
-
| 'TX_COLLECTION_SLOW_REQ_RESP_INTERVAL_MS'
|
|
262
|
-
| 'TX_COLLECTION_SLOW_REQ_RESP_TIMEOUT_MS'
|
|
263
|
-
| 'TX_COLLECTION_RECONCILE_INTERVAL_MS'
|
|
264
|
-
| 'TX_COLLECTION_DISABLE_SLOW_DURING_FAST_REQUESTS'
|
|
265
283
|
| 'TX_COLLECTION_FAST_NODE_INTERVAL_MS'
|
|
266
284
|
| 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE'
|
|
267
285
|
| 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE'
|
|
268
286
|
| 'TX_COLLECTION_NODE_RPC_URLS'
|
|
269
287
|
| 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE'
|
|
270
288
|
| 'TX_COLLECTION_FILE_STORE_URLS'
|
|
271
|
-
| 'TX_COLLECTION_FILE_STORE_SLOW_DELAY_MS'
|
|
272
289
|
| 'TX_COLLECTION_FILE_STORE_FAST_DELAY_MS'
|
|
273
290
|
| 'TX_COLLECTION_FILE_STORE_FAST_WORKER_COUNT'
|
|
274
|
-
| 'TX_COLLECTION_FILE_STORE_SLOW_WORKER_COUNT'
|
|
275
291
|
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_BASE_MS'
|
|
276
|
-
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_BASE_MS'
|
|
277
292
|
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_MAX_MS'
|
|
278
|
-
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_MAX_MS'
|
|
279
293
|
| 'TX_FILE_STORE_URL'
|
|
280
294
|
| 'TX_FILE_STORE_UPLOAD_CONCURRENCY'
|
|
281
295
|
| 'TX_FILE_STORE_MAX_QUEUE_SIZE'
|
|
@@ -291,7 +305,6 @@ export type EnvVar =
|
|
|
291
305
|
| 'VALIDATOR_MAX_TX_PER_CHECKPOINT'
|
|
292
306
|
| 'VALIDATOR_PRIVATE_KEYS'
|
|
293
307
|
| 'VALIDATOR_PRIVATE_KEY'
|
|
294
|
-
| 'VALIDATOR_REEXECUTE'
|
|
295
308
|
| 'VALIDATOR_ADDRESSES'
|
|
296
309
|
| 'ROLLUP_VERSION'
|
|
297
310
|
| 'WS_BLOCK_CHECK_INTERVAL_MS'
|
|
@@ -324,7 +337,7 @@ export type EnvVar =
|
|
|
324
337
|
| 'AZTEC_SLASH_AMOUNT_SMALL'
|
|
325
338
|
| 'AZTEC_SLASH_AMOUNT_MEDIUM'
|
|
326
339
|
| 'AZTEC_SLASH_AMOUNT_LARGE'
|
|
327
|
-
| '
|
|
340
|
+
| 'AZTEC_SLASHER_ENABLED'
|
|
328
341
|
| 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
|
|
329
342
|
| 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
|
|
330
343
|
| 'AZTEC_GOVERNANCE_VOTING_DURATION'
|
|
@@ -353,13 +366,15 @@ export type EnvVar =
|
|
|
353
366
|
| 'K8S_POD_NAME'
|
|
354
367
|
| 'K8S_POD_UID'
|
|
355
368
|
| 'K8S_NAMESPACE_NAME'
|
|
356
|
-
| '
|
|
357
|
-
| 'VALIDATOR_REEXECUTE_DEADLINE_MS'
|
|
369
|
+
| 'ENABLE_AUTO_SHUTDOWN'
|
|
358
370
|
| 'WEB3_SIGNER_URL'
|
|
359
371
|
| 'SKIP_ARCHIVER_INITIAL_SYNC'
|
|
360
372
|
| 'BLOB_ALLOW_EMPTY_SOURCES'
|
|
373
|
+
| 'BLOB_PREFER_FILESTORES'
|
|
374
|
+
| 'BLOB_FILE_STORE_TIMEOUT_MS'
|
|
361
375
|
| 'FISHERMAN_MODE'
|
|
362
376
|
| 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS'
|
|
377
|
+
| 'MAX_BLOCKS_PER_CHECKPOINT'
|
|
363
378
|
| 'LEGACY_BLS_CLI'
|
|
364
379
|
| 'DEBUG_FORCE_TX_PROOF_VERIFICATION'
|
|
365
380
|
| '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
|
}
|
|
@@ -59,10 +59,19 @@ export class Aes128 {
|
|
|
59
59
|
* @param iv - AES initialization vector.
|
|
60
60
|
* @param key - Key to decrypt with.
|
|
61
61
|
* @returns Decrypted data.
|
|
62
|
+
* @throws If the decrypted buffer has invalid PKCS#7 padding.
|
|
62
63
|
*/
|
|
63
64
|
public async decryptBufferCBC(data: Uint8Array, iv: Uint8Array, key: Uint8Array) {
|
|
64
65
|
const paddedBuffer = await this.decryptBufferCBCKeepPadding(data, iv, key);
|
|
65
|
-
const
|
|
66
|
-
|
|
66
|
+
const paddingLen = paddedBuffer[paddedBuffer.length - 1];
|
|
67
|
+
if (paddingLen === 0 || paddingLen > 16) {
|
|
68
|
+
throw new Error(`Invalid PKCS#7 padding length: ${paddingLen}`);
|
|
69
|
+
}
|
|
70
|
+
for (let i = paddedBuffer.length - paddingLen; i < paddedBuffer.length; i++) {
|
|
71
|
+
if (paddedBuffer[i] !== paddingLen) {
|
|
72
|
+
throw new Error('Invalid PKCS#7 padding');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return paddedBuffer.subarray(0, paddedBuffer.length - paddingLen);
|
|
67
76
|
}
|
|
68
77
|
}
|
|
@@ -262,26 +262,3 @@ export function decryptBn254KeystoreFromObject(keystore: Bn254Keystore, password
|
|
|
262
262
|
throw new Bn254KeystoreError(`Failed to decrypt keystore: ${String(error)}`, error as Error);
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Validates that a decrypted private key matches the public key in the keystore.
|
|
268
|
-
*
|
|
269
|
-
* @param privateKeyHex - Decrypted private key (0x-prefixed)
|
|
270
|
-
* @param expectedPubkey - Expected public key from keystore
|
|
271
|
-
* @param computePublicKey - Function to compute public key from private key
|
|
272
|
-
* @returns true if keys match, false otherwise
|
|
273
|
-
*/
|
|
274
|
-
export function verifyBn254Keypair(
|
|
275
|
-
privateKeyHex: string,
|
|
276
|
-
expectedPubkey: string,
|
|
277
|
-
computePublicKey: (privateKey: string) => string,
|
|
278
|
-
): boolean {
|
|
279
|
-
try {
|
|
280
|
-
const computedPubkey = computePublicKey(privateKeyHex);
|
|
281
|
-
const normalizedExpected = expectedPubkey.toLowerCase().replace(/^0x/i, '');
|
|
282
|
-
const normalizedComputed = computedPubkey.toLowerCase().replace(/^0x/i, '');
|
|
283
|
-
return normalizedExpected === normalizedComputed;
|
|
284
|
-
} catch {
|
|
285
|
-
return false;
|
|
286
|
-
}
|
|
287
|
-
}
|