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> = {
validator: (spec?: Spec<TOptions[P]>) => ValidatorSpec<TOptions[P]>
desc: string
default?: TOptions[P]
secret?: boolean
public?: boolean
}
}
......@@ -167,21 +167,25 @@ export abstract class BaseServiceV2<
validator: validators.num,
desc: 'Loop interval in milliseconds',
default: params.loopIntervalMs || 0,
public: true,
},
port: {
validator: validators.num,
desc: 'Port for the app server',
default: params.port || 7300,
public: true,
},
hostname: {
validator: validators.str,
desc: 'Hostname for the app server',
default: params.hostname || '0.0.0.0',
public: true,
},
logLevel: {
validator: validators.logLevel,
desc: 'Log level',
default: params.logLevel || 'debug',
public: true,
},
}
......@@ -194,7 +198,7 @@ export abstract class BaseServiceV2<
// List of options that can safely be logged.
const publicOptionNames = Object.entries(params.optionsSpec)
.filter(([, spec]) => {
return spec.secret !== true
return spec.public
})
.map(([key]) => {
return key
......
......@@ -41,11 +41,11 @@ export class DrippieMonService extends BaseServiceV2<
rpc: {
validator: validators.provider,
desc: 'Provider for network where Drippie is deployed',
secret: true,
},
drippieAddress: {
validator: validators.str,
desc: 'Address of Drippie contract',
public: true,
},
},
metricsSpec: {
......
......@@ -50,17 +50,16 @@ export class FaultDetector extends BaseServiceV2<Options, Metrics, State> {
l1RpcProvider: {
validator: validators.provider,
desc: 'Provider for interacting with L1',
secret: true,
},
l2RpcProvider: {
validator: validators.provider,
desc: 'Provider for interacting with L2',
secret: true,
},
startBatchIndex: {
validator: validators.num,
default: -1,
desc: 'Batch index to start checking from',
public: true,
},
},
metricsSpec: {
......
......@@ -46,22 +46,20 @@ export class MessageRelayerService extends BaseServiceV2<
l1RpcProvider: {
validator: validators.provider,
desc: 'Provider for interacting with L1.',
secret: true,
},
l2RpcProvider: {
validator: validators.provider,
desc: 'Provider for interacting with L2.',
secret: true,
},
l1Wallet: {
validator: validators.wallet,
desc: 'Wallet used to interact with L1.',
secret: true,
},
fromL2TransactionIndex: {
validator: validators.num,
desc: 'Index of the first L2 transaction to start processing from.',
default: 0,
public: true,
},
},
metricsSpec: {
......
......@@ -42,17 +42,16 @@ export class HealthcheckService extends BaseServiceV2<
referenceRpcProvider: {
validator: validators.provider,
desc: 'Provider for interacting with L1',
secret: true,
},
targetRpcProvider: {
validator: validators.provider,
desc: 'Provider for interacting with L2',
secret: true,
},
onDivergenceWaitMs: {
validator: validators.num,
desc: 'Waiting time in ms per loop when divergence is detected',
default: 60_000,
public: true,
},
},
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