Commit 97b5f578 authored by Kelvin Fichter's avatar Kelvin Fichter

fix: better version imports for services

Improves the way that package versions are imported for BaseServiceV2
services. By importing directly (in typescript, rather than using
require) TypeScript will properly embed the package.json in the /dist
folder which makes it possible to run the services using the compiled
JavaScript.
parent 920b46b4
---
'@eth-optimism/drippie-mon': patch
'@eth-optimism/fault-detector': patch
'@eth-optimism/message-relayer': patch
'@eth-optimism/replica-healthcheck': patch
---
Fixes how versions are imported for BaseServiceV2 services
...@@ -8,6 +8,8 @@ import { Provider } from '@ethersproject/abstract-provider' ...@@ -8,6 +8,8 @@ import { Provider } from '@ethersproject/abstract-provider'
import { ethers } from 'ethers' import { ethers } from 'ethers'
import * as DrippieArtifact from '@eth-optimism/contracts-periphery/artifacts/contracts/universal/drippie/Drippie.sol/Drippie.json' import * as DrippieArtifact from '@eth-optimism/contracts-periphery/artifacts/contracts/universal/drippie/Drippie.sol/Drippie.json'
import { version } from '../package.json'
type DrippieMonOptions = { type DrippieMonOptions = {
rpc: Provider rpc: Provider
drippieAddress: string drippieAddress: string
...@@ -30,8 +32,7 @@ export class DrippieMonService extends BaseServiceV2< ...@@ -30,8 +32,7 @@ export class DrippieMonService extends BaseServiceV2<
> { > {
constructor(options?: Partial<DrippieMonOptions>) { constructor(options?: Partial<DrippieMonOptions>) {
super({ super({
// eslint-disable-next-line @typescript-eslint/no-var-requires version,
version: require('../package.json').version,
name: 'drippie-mon', name: 'drippie-mon',
loop: true, loop: true,
loopIntervalMs: 60_000, loopIntervalMs: 60_000,
......
{ {
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"rootDir": "./src",
"outDir": "./dist" "outDir": "./dist"
}, },
"include": [ "include": [
"package.json",
"src/**/*" "src/**/*"
] ]
} }
...@@ -10,6 +10,7 @@ import { Provider } from '@ethersproject/abstract-provider' ...@@ -10,6 +10,7 @@ import { Provider } from '@ethersproject/abstract-provider'
import { Contract, ethers, Transaction } from 'ethers' import { Contract, ethers, Transaction } from 'ethers'
import dateformat from 'dateformat' import dateformat from 'dateformat'
import { version } from '../package.json'
import { import {
findFirstUnfinalizedStateBatchIndex, findFirstUnfinalizedStateBatchIndex,
findEventForStateBatch, findEventForStateBatch,
...@@ -38,8 +39,7 @@ type State = { ...@@ -38,8 +39,7 @@ type State = {
export class FaultDetector extends BaseServiceV2<Options, Metrics, State> { export class FaultDetector extends BaseServiceV2<Options, Metrics, State> {
constructor(options?: Partial<Options>) { constructor(options?: Partial<Options>) {
super({ super({
// eslint-disable-next-line @typescript-eslint/no-var-requires version,
version: require('../package.json').version,
name: 'fault-detector', name: 'fault-detector',
loop: true, loop: true,
loopIntervalMs: 1000, loopIntervalMs: 1000,
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
"outDir": "./dist" "outDir": "./dist"
}, },
"include": [ "include": [
"package.json",
"src/**/*" "src/**/*"
] ]
} }
...@@ -10,6 +10,8 @@ import { ...@@ -10,6 +10,8 @@ import {
import { CrossChainMessenger, MessageStatus } from '@eth-optimism/sdk' import { CrossChainMessenger, MessageStatus } from '@eth-optimism/sdk'
import { Provider } from '@ethersproject/abstract-provider' import { Provider } from '@ethersproject/abstract-provider'
import { version } from '../package.json'
type MessageRelayerOptions = { type MessageRelayerOptions = {
l1RpcProvider: Provider l1RpcProvider: Provider
l2RpcProvider: Provider l2RpcProvider: Provider
...@@ -37,8 +39,7 @@ export class MessageRelayerService extends BaseServiceV2< ...@@ -37,8 +39,7 @@ export class MessageRelayerService extends BaseServiceV2<
> { > {
constructor(options?: Partial<MessageRelayerOptions>) { constructor(options?: Partial<MessageRelayerOptions>) {
super({ super({
// eslint-disable-next-line @typescript-eslint/no-var-requires version,
version: require('../package.json').version,
name: 'message-relayer', name: 'message-relayer',
options, options,
optionsSpec: { optionsSpec: {
......
{ {
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"rootDir": "./src",
"outDir": "./dist" "outDir": "./dist"
}, },
"include": [ "include": [
"package.json",
"src/**/*" "src/**/*"
] ]
} }
...@@ -7,6 +7,8 @@ import { ...@@ -7,6 +7,8 @@ import {
} from '@eth-optimism/common-ts' } from '@eth-optimism/common-ts'
import { sleep } from '@eth-optimism/core-utils' import { sleep } from '@eth-optimism/core-utils'
import { version } from '../package.json'
type HealthcheckOptions = { type HealthcheckOptions = {
referenceRpcProvider: Provider referenceRpcProvider: Provider
targetRpcProvider: Provider targetRpcProvider: Provider
...@@ -32,8 +34,7 @@ export class HealthcheckService extends BaseServiceV2< ...@@ -32,8 +34,7 @@ export class HealthcheckService extends BaseServiceV2<
> { > {
constructor(options?: Partial<HealthcheckOptions>) { constructor(options?: Partial<HealthcheckOptions>) {
super({ super({
// eslint-disable-next-line @typescript-eslint/no-var-requires version,
version: require('../package.json').version,
name: 'healthcheck', name: 'healthcheck',
loopIntervalMs: 5000, loopIntervalMs: 5000,
options, options,
......
{ {
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"rootDir": "./src",
"outDir": "./dist" "outDir": "./dist"
}, },
"include": [ "include": [
"package.json",
"src/**/*" "src/**/*"
] ]
} }
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