Commit af8ca902 authored by mergify[bot]'s avatar mergify[bot] Committed by GitHub

Merge pull request #4376 from ethereum-optimism/sc/cmn-bs-private-default

feat(cmn): BSv2 private options by default
parents b7ea6ef5 ab8ec365
---
'@eth-optimism/common-ts': minor
'@eth-optimism/drippie-mon': patch
'@eth-optimism/fault-detector': patch
'@eth-optimism/replica-healthcheck': patch
---
Updates BaseServiceV2 so that options are secret by default. Services will have to explicitly mark options as "public" for those options to be logged and included in the metadata metric.
...@@ -31,7 +31,7 @@ export type OptionsSpec<TOptions extends Options> = { ...@@ -31,7 +31,7 @@ export type OptionsSpec<TOptions extends Options> = {
validator: (spec?: Spec<TOptions[P]>) => ValidatorSpec<TOptions[P]> validator: (spec?: Spec<TOptions[P]>) => ValidatorSpec<TOptions[P]>
desc: string desc: string
default?: TOptions[P] default?: TOptions[P]
secret?: boolean public?: boolean
} }
} }
...@@ -167,21 +167,25 @@ export abstract class BaseServiceV2< ...@@ -167,21 +167,25 @@ export abstract class BaseServiceV2<
validator: validators.num, validator: validators.num,
desc: 'Loop interval in milliseconds', desc: 'Loop interval in milliseconds',
default: params.loopIntervalMs || 0, default: params.loopIntervalMs || 0,
public: true,
}, },
port: { port: {
validator: validators.num, validator: validators.num,
desc: 'Port for the app server', desc: 'Port for the app server',
default: params.port || 7300, default: params.port || 7300,
public: true,
}, },
hostname: { hostname: {
validator: validators.str, validator: validators.str,
desc: 'Hostname for the app server', desc: 'Hostname for the app server',
default: params.hostname || '0.0.0.0', default: params.hostname || '0.0.0.0',
public: true,
}, },
logLevel: { logLevel: {
validator: validators.logLevel, validator: validators.logLevel,
desc: 'Log level', desc: 'Log level',
default: params.logLevel || 'debug', default: params.logLevel || 'debug',
public: true,
}, },
} }
...@@ -194,7 +198,7 @@ export abstract class BaseServiceV2< ...@@ -194,7 +198,7 @@ export abstract class BaseServiceV2<
// List of options that can safely be logged. // List of options that can safely be logged.
const publicOptionNames = Object.entries(params.optionsSpec) const publicOptionNames = Object.entries(params.optionsSpec)
.filter(([, spec]) => { .filter(([, spec]) => {
return spec.secret !== true return spec.public
}) })
.map(([key]) => { .map(([key]) => {
return key return key
......
...@@ -41,11 +41,11 @@ export class DrippieMonService extends BaseServiceV2< ...@@ -41,11 +41,11 @@ export class DrippieMonService extends BaseServiceV2<
rpc: { rpc: {
validator: validators.provider, validator: validators.provider,
desc: 'Provider for network where Drippie is deployed', desc: 'Provider for network where Drippie is deployed',
secret: true,
}, },
drippieAddress: { drippieAddress: {
validator: validators.str, validator: validators.str,
desc: 'Address of Drippie contract', desc: 'Address of Drippie contract',
public: true,
}, },
}, },
metricsSpec: { metricsSpec: {
......
...@@ -50,17 +50,16 @@ export class FaultDetector extends BaseServiceV2<Options, Metrics, State> { ...@@ -50,17 +50,16 @@ export class FaultDetector extends BaseServiceV2<Options, Metrics, State> {
l1RpcProvider: { l1RpcProvider: {
validator: validators.provider, validator: validators.provider,
desc: 'Provider for interacting with L1', desc: 'Provider for interacting with L1',
secret: true,
}, },
l2RpcProvider: { l2RpcProvider: {
validator: validators.provider, validator: validators.provider,
desc: 'Provider for interacting with L2', desc: 'Provider for interacting with L2',
secret: true,
}, },
startBatchIndex: { startBatchIndex: {
validator: validators.num, validator: validators.num,
default: -1, default: -1,
desc: 'Batch index to start checking from', desc: 'Batch index to start checking from',
public: true,
}, },
}, },
metricsSpec: { metricsSpec: {
......
...@@ -46,22 +46,20 @@ export class MessageRelayerService extends BaseServiceV2< ...@@ -46,22 +46,20 @@ export class MessageRelayerService extends BaseServiceV2<
l1RpcProvider: { l1RpcProvider: {
validator: validators.provider, validator: validators.provider,
desc: 'Provider for interacting with L1.', desc: 'Provider for interacting with L1.',
secret: true,
}, },
l2RpcProvider: { l2RpcProvider: {
validator: validators.provider, validator: validators.provider,
desc: 'Provider for interacting with L2.', desc: 'Provider for interacting with L2.',
secret: true,
}, },
l1Wallet: { l1Wallet: {
validator: validators.wallet, validator: validators.wallet,
desc: 'Wallet used to interact with L1.', desc: 'Wallet used to interact with L1.',
secret: true,
}, },
fromL2TransactionIndex: { fromL2TransactionIndex: {
validator: validators.num, validator: validators.num,
desc: 'Index of the first L2 transaction to start processing from.', desc: 'Index of the first L2 transaction to start processing from.',
default: 0, default: 0,
public: true,
}, },
}, },
metricsSpec: { metricsSpec: {
......
...@@ -42,17 +42,16 @@ export class HealthcheckService extends BaseServiceV2< ...@@ -42,17 +42,16 @@ export class HealthcheckService extends BaseServiceV2<
referenceRpcProvider: { referenceRpcProvider: {
validator: validators.provider, validator: validators.provider,
desc: 'Provider for interacting with L1', desc: 'Provider for interacting with L1',
secret: true,
}, },
targetRpcProvider: { targetRpcProvider: {
validator: validators.provider, validator: validators.provider,
desc: 'Provider for interacting with L2', desc: 'Provider for interacting with L2',
secret: true,
}, },
onDivergenceWaitMs: { onDivergenceWaitMs: {
validator: validators.num, validator: validators.num,
desc: 'Waiting time in ms per loop when divergence is detected', desc: 'Waiting time in ms per loop when divergence is detected',
default: 60_000, default: 60_000,
public: true,
}, },
}, },
metricsSpec: { metricsSpec: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment