From 8a5056f4d90b4c2f76d4d99f818da3ba3c51487c Mon Sep 17 00:00:00 2001 From: Maddiaa0 <47148561+Maddiaa0@users.noreply.github.com> Date: Sat, 8 Mar 2025 00:54:54 +0000 Subject: [PATCH 1/3] feat(config): add fallbacks --- yarn-project/foundation/src/config/index.ts | 21 +++++++++++++++---- .../sequencer-client/src/publisher/config.ts | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/yarn-project/foundation/src/config/index.ts b/yarn-project/foundation/src/config/index.ts index a96112b407f6..4e10a4d2eba3 100644 --- a/yarn-project/foundation/src/config/index.ts +++ b/yarn-project/foundation/src/config/index.ts @@ -10,6 +10,7 @@ export interface ConfigMapping { description: string; isBoolean?: boolean; nested?: Record; + fallback?: EnvVar[]; } export function isBooleanConfigValue(obj: T, key: keyof T): boolean { @@ -22,16 +23,28 @@ export function getConfigFromMappings(configMappings: ConfigMappingsType): const config = {} as T; for (const key in configMappings) { - const { env, parseEnv, defaultValue: def, nested } = configMappings[key]; + const { env, parseEnv, defaultValue, nested, fallback } = configMappings[key]; if (nested) { (config as any)[key] = getConfigFromMappings(nested); } else { + let value; const val = env ? process.env[env] : undefined; + if (val !== undefined) { - (config as any)[key] = parseEnv ? parseEnv(val) : val; - } else if (def !== undefined) { - (config as any)[key] = def; + value = parseEnv ? parseEnv(val) : val; + } else if (fallback && fallback.length > 0) { + // Try each fallback env var in order + for (const fallbackEnv of fallback) { + const fallbackVal = process.env[fallbackEnv]; + if (fallbackVal !== undefined) { + value = parseEnv ? parseEnv(fallbackVal) : fallbackVal; + break; + } + } } + + // Assign the found value or default + (config as any)[key] = value !== undefined ? value : defaultValue; } } diff --git a/yarn-project/sequencer-client/src/publisher/config.ts b/yarn-project/sequencer-client/src/publisher/config.ts index 92890cd339ff..e05a9e3a6bf0 100644 --- a/yarn-project/sequencer-client/src/publisher/config.ts +++ b/yarn-project/sequencer-client/src/publisher/config.ts @@ -50,6 +50,7 @@ export const getTxSenderConfigMappings: ( description: 'The private key to be used by the publisher.', parseEnv: (val: string) => (val ? `0x${val.replace('0x', '')}` : NULL_KEY), defaultValue: NULL_KEY, + fallback: ['VALIDATOR_PRIVATE_KEY'], }, }); From 9ae74edd21852cffcd4cebcb54f8891b817d0921 Mon Sep 17 00:00:00 2001 From: Maddiaa0 <47148561+Maddiaa0@users.noreply.github.com> Date: Mon, 10 Mar 2025 18:08:00 +0000 Subject: [PATCH 2/3] fix: fallback in cli too --- yarn-project/aztec/src/cli/cmds/start_node.ts | 25 +++++--- .../scripts/native-network/validator.sh | 8 +-- yarn-project/foundation/src/config/index.ts | 63 +++++++++++++------ yarn-project/sequencer-client/src/config.ts | 3 + 4 files changed, 69 insertions(+), 30 deletions(-) diff --git a/yarn-project/aztec/src/cli/cmds/start_node.ts b/yarn-project/aztec/src/cli/cmds/start_node.ts index 7b7c2d9d9b22..b8dbebaae06a 100644 --- a/yarn-project/aztec/src/cli/cmds/start_node.ts +++ b/yarn-project/aztec/src/cli/cmds/start_node.ts @@ -26,10 +26,17 @@ export async function startNode( ): Promise<{ config: AztecNodeConfig }> { // options specifically namespaced with --node.