Skip to content

Commit

Permalink
Merge pull request #378 from input-output-hk/refacter/ADP-1933-make-l…
Browse files Browse the repository at this point in the history
…ogger-a-required-dependendcy

Refacter/adp 1933 make logger a required dependendcy
  • Loading branch information
rhyslbw committed Aug 8, 2022
2 parents 29d042e + cc82bc2 commit 9b3e26c
Show file tree
Hide file tree
Showing 80 changed files with 461 additions and 421 deletions.
7 changes: 2 additions & 5 deletions packages/blockfrost/src/blockfrostChainHistoryProvider.ts
Expand Up @@ -7,8 +7,8 @@ import {
ProviderError,
ProviderFailure
} from '@cardano-sdk/core';
import { Logger } from 'ts-log';
import { blockfrostMetadataToTxMetadata, fetchByAddressSequentially, formatBlockfrostError, healthCheck } from './util';
import { dummyLogger } from 'ts-log';
import omit from 'lodash/omit';
import orderBy from 'lodash/orderBy';

Expand All @@ -21,10 +21,7 @@ type WithCertIndex<T> = T & { cert_index: number };
* @returns {ChainHistoryProvider} ChainHistoryProvider
* @throws {ProviderError}
*/
export const blockfrostChainHistoryProvider = (
blockfrost: BlockFrostAPI,
logger = dummyLogger
): ChainHistoryProvider => {
export const blockfrostChainHistoryProvider = (blockfrost: BlockFrostAPI, logger: Logger): ChainHistoryProvider => {
const fetchRedeemers = async ({
redeemer_count,
hash
Expand Down
Expand Up @@ -4,6 +4,7 @@
import { BlockFrostAPI, Responses } from '@blockfrost/blockfrost-js';
import { Cardano } from '@cardano-sdk/core';
import { blockfrostChainHistoryProvider } from '../src';
import { dummyLogger as logger } from 'ts-log';

jest.mock('@blockfrost/blockfrost-js');

Expand Down Expand Up @@ -142,7 +143,7 @@ describe('blockfrostChainHistoryProvider', () => {
BlockFrostAPI.prototype.txs = jest.fn().mockResolvedValue(mockedTxResponse);
BlockFrostAPI.prototype.txsMetadata = jest.fn().mockResolvedValue(mockedMetadataResponse);
const blockfrost = new BlockFrostAPI({ isTestnet: true, projectId: apiKey });
const client = blockfrostChainHistoryProvider(blockfrost);
const client = blockfrostChainHistoryProvider(blockfrost, logger);
const response = await client.transactionsByHashes(
['4123d70f66414cc921f6ffc29a899aafc7137a99a0fd453d6b200863ef5702d6'].map(Cardano.TransactionId)
);
Expand Down Expand Up @@ -243,7 +244,7 @@ describe('blockfrostChainHistoryProvider', () => {
BlockFrostAPI.prototype.blocks = jest.fn().mockResolvedValue(blockResponse);

const blockfrost = new BlockFrostAPI({ isTestnet: true, projectId: apiKey });
const client = blockfrostChainHistoryProvider(blockfrost);
const client = blockfrostChainHistoryProvider(blockfrost, logger);
const response = await client.blocksByHashes([
Cardano.BlockId('0dbe461fb5f981c0d01615332b8666340eb1a692b3034f46bcb5f5ea4172b2ed')
]);
Expand Down Expand Up @@ -276,7 +277,7 @@ describe('blockfrostChainHistoryProvider', () => {
BlockFrostAPI.prototype.blocks = jest.fn().mockResolvedValue({ ...blockResponse, slot_leader: slotLeader });

const blockfrost = new BlockFrostAPI({ isTestnet: true, projectId: apiKey });
const client = blockfrostChainHistoryProvider(blockfrost);
const client = blockfrostChainHistoryProvider(blockfrost, logger);
const response = await client.blocksByHashes([
Cardano.BlockId('0dbe461fb5f981c0d01615332b8666340eb1a692b3034f46bcb5f5ea4172b2ed')
]);
Expand Down
@@ -1,20 +1,20 @@
import * as OpenApiValidator from 'express-openapi-validator';
import { ChainHistoryProvider } from '@cardano-sdk/core';
import { HttpService } from '../Http';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { ServiceNames } from '../Program';
import { providerHandler } from '../util';
import express from 'express';
import path from 'path';

export interface ChainHistoryHttpServiceDependencies {
logger?: Logger;
logger: Logger;
chainHistoryProvider: ChainHistoryProvider;
}

export class ChainHistoryHttpService extends HttpService {
constructor(
{ logger = dummyLogger, chainHistoryProvider }: ChainHistoryHttpServiceDependencies,
{ logger, chainHistoryProvider }: ChainHistoryHttpServiceDependencies,
router: express.Router = express.Router()
) {
super(ServiceNames.ChainHistory, chainHistoryProvider, router, logger);
Expand Down
Expand Up @@ -20,7 +20,7 @@ import {
WithCertType,
WithdrawalModel
} from './types';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { Pool, QueryResult } from 'pg';
import { hexStringToBuffer } from '../../util';
import {
Expand All @@ -40,7 +40,7 @@ export class ChainHistoryBuilder {
#db: Pool;
#logger: Logger;

constructor(db: Pool, logger = dummyLogger) {
constructor(db: Pool, logger: Logger) {
this.#db = db;
this.#logger = logger;
}
Expand Down
Expand Up @@ -3,7 +3,7 @@ import { BlockModel, BlockOutputModel, TipModel, TxInOutModel, TxModel } from '.
import { Cardano, ChainHistoryProvider, TransactionsByAddressesArgs } from '@cardano-sdk/core';
import { ChainHistoryBuilder } from './ChainHistoryBuilder';
import { DbSyncProvider } from '../../DbSyncProvider';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { MetadataService } from '../../Metadata';
import { Pool, QueryResult } from 'pg';
import { hexStringToBuffer } from '../../util';
Expand All @@ -16,7 +16,7 @@ export class DbSyncChainHistoryProvider extends DbSyncProvider implements ChainH
#metadataService: MetadataService;
#logger: Logger;

constructor(db: Pool, metadataService: MetadataService, logger = dummyLogger) {
constructor(db: Pool, metadataService: MetadataService, logger: Logger) {
super(db);
this.#builder = new ChainHistoryBuilder(db, logger);
this.#logger = logger;
Expand Down
6 changes: 3 additions & 3 deletions packages/cardano-services/src/Http/HttpServer.ts
@@ -1,5 +1,5 @@
import { HttpService } from './HttpService';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { ProviderError, ProviderFailure } from '@cardano-sdk/core';
import { RunnableModule } from '../RunnableModule';
import { fromSerializableObject, toSerializableObject } from '@cardano-sdk/util';
Expand Down Expand Up @@ -28,7 +28,7 @@ export type HttpServerConfig = {

export interface HttpServerDependencies {
services: HttpService[];
logger?: Logger;
logger: Logger;
}

export class HttpServer extends RunnableModule {
Expand All @@ -37,7 +37,7 @@ export class HttpServer extends RunnableModule {
#config: HttpServerConfig;
#dependencies: HttpServerDependencies;

constructor(config: HttpServerConfig, { logger = dummyLogger, ...rest }: HttpServerDependencies) {
constructor(config: HttpServerConfig, { logger, ...rest }: HttpServerDependencies) {
super(config.name || 'HttpServer', logger);
this.#config = config;
this.#dependencies = { logger, ...rest };
Expand Down
4 changes: 2 additions & 2 deletions packages/cardano-services/src/Http/HttpService.ts
@@ -1,6 +1,6 @@
import { HealthCheckResponse, Provider, ProviderError, ProviderFailure } from '@cardano-sdk/core';
import { HttpServer } from './HttpServer';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { ProviderHandler } from '../util';
import { RunnableModule } from '../RunnableModule';
import express from 'express';
Expand All @@ -10,7 +10,7 @@ export abstract class HttpService extends RunnableModule {
public slug: string;
public provider: Provider;

constructor(slug: string, provider: Provider, router: express.Router, logger = dummyLogger) {
constructor(slug: string, provider: Provider, router: express.Router, logger: Logger) {
super(slug, logger);
this.router = router;
this.slug = slug;
Expand Down
Expand Up @@ -11,7 +11,7 @@ import {
import { DbSyncProvider } from '../../DbSyncProvider';
import { GenesisData } from './types';
import { InMemoryCache, UNLIMITED_CACHE_TTL } from '../../InMemoryCache';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { NetworkInfoBuilder } from './NetworkInfoBuilder';
import { NetworkInfoCacheKey } from '.';
import { Pool } from 'pg';
Expand All @@ -33,7 +33,7 @@ export interface NetworkInfoProviderProps {
export interface NetworkInfoProviderDependencies {
db: Pool;
cache: InMemoryCache;
logger?: Logger;
logger: Logger;
cardanoNode: CardanoNode;
}
export class DbSyncNetworkInfoProvider extends DbSyncProvider implements NetworkInfoProvider {
Expand All @@ -47,7 +47,7 @@ export class DbSyncNetworkInfoProvider extends DbSyncProvider implements Network

constructor(
{ cardanoNodeConfigPath, epochPollInterval }: NetworkInfoProviderProps,
{ db, cache, logger = dummyLogger, cardanoNode }: NetworkInfoProviderDependencies
{ db, cache, logger, cardanoNode }: NetworkInfoProviderDependencies
) {
super(db);
this.#logger = logger;
Expand Down
Expand Up @@ -7,14 +7,14 @@ import {
WalletProtocolParamsModel
} from './types';
import { Cardano } from '@cardano-sdk/core';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { Pool, QueryResult } from 'pg';
import Queries from './queries';

export class NetworkInfoBuilder {
#db: Pool;
#logger: Logger;
constructor(db: Pool, logger = dummyLogger) {
constructor(db: Pool, logger: Logger) {
this.#db = db;
this.#logger = logger;
}
Expand Down
@@ -1,20 +1,20 @@
import * as OpenApiValidator from 'express-openapi-validator';
import { HttpService } from '../Http';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { NetworkInfoProvider } from '@cardano-sdk/core';
import { ServiceNames } from '../Program';
import { providerHandler } from '../util';
import express from 'express';
import path from 'path';

export interface NetworkInfoServiceDependencies {
logger?: Logger;
logger: Logger;
networkInfoProvider: NetworkInfoProvider;
}

export class NetworkInfoHttpService extends HttpService {
constructor(
{ networkInfoProvider, logger = dummyLogger }: NetworkInfoServiceDependencies,
{ networkInfoProvider, logger }: NetworkInfoServiceDependencies,
router: express.Router = express.Router()
) {
super(ServiceNames.NetworkInfo, networkInfoProvider, router, logger);
Expand Down
6 changes: 3 additions & 3 deletions packages/cardano-services/src/Program/services/ogmios.ts
Expand Up @@ -43,7 +43,7 @@ export const ogmiosTxSubmitProviderWithDiscovery = async (
serviceName: string
): Promise<TxSubmitProvider> => {
const { name, port } = await dnsResolver(serviceName!);
let ogmiosProvider = ogmiosTxSubmitProvider({ host: name, port });
let ogmiosProvider = ogmiosTxSubmitProvider({ host: name, port }, logger);

return new Proxy<TxSubmitProvider>({} as TxSubmitProvider, {
get(_, prop) {
Expand All @@ -59,7 +59,7 @@ export const ogmiosTxSubmitProviderWithDiscovery = async (
.catch((error_) =>
logger.warn(`Ogmios tx submit provider failed to close after DNS resolution: ${error_}`)
);
ogmiosProvider = ogmiosTxSubmitProvider({ host: record.name, port: record.port });
ogmiosProvider = ogmiosTxSubmitProvider({ host: record.name, port: record.port }, logger);
return await ogmiosProvider.submitTx(args);
}
throw error;
Expand All @@ -81,7 +81,7 @@ export const getOgmiosTxSubmitProvider = async (
): Promise<TxSubmitProvider> => {
if (options?.ogmiosSrvServiceName)
return ogmiosTxSubmitProviderWithDiscovery(dnsResolver, logger, options.ogmiosSrvServiceName);
if (options?.ogmiosUrl) return ogmiosTxSubmitProvider(urlToConnectionConfig(options?.ogmiosUrl));
if (options?.ogmiosUrl) return ogmiosTxSubmitProvider(urlToConnectionConfig(options?.ogmiosUrl), logger);
throw new MissingProgramOption(ServiceNames.TxSubmit, [
CommonOptionDescriptions.OgmiosUrl,
CommonOptionDescriptions.OgmiosSrvServiceName
Expand Down
13 changes: 6 additions & 7 deletions packages/cardano-services/src/Program/services/rabbitmq.ts
Expand Up @@ -26,9 +26,7 @@ export const rabbitMqTxSubmitProviderWithDiscovery = async (
serviceName: string
): Promise<RabbitMqTxSubmitProvider> => {
const record = await dnsResolver(serviceName!);
let rabbitmqProvider = new RabbitMqTxSubmitProvider({
rabbitmqUrl: srvRecordToRabbitmqURL(record)
});
let rabbitmqProvider = new RabbitMqTxSubmitProvider({ rabbitmqUrl: srvRecordToRabbitmqURL(record) }, { logger });

return new Proxy<RabbitMqTxSubmitProvider>({} as RabbitMqTxSubmitProvider, {
get(_, prop) {
Expand All @@ -45,9 +43,10 @@ export const rabbitMqTxSubmitProviderWithDiscovery = async (
await rabbitmqProvider
.close?.()
.catch((error_) => logger.warn(`RabbitMQ provider failed to close after DNS resolution: ${error_}`));
rabbitmqProvider = new RabbitMqTxSubmitProvider({
rabbitmqUrl: srvRecordToRabbitmqURL(resolvedRecord)
});
rabbitmqProvider = new RabbitMqTxSubmitProvider(
{ rabbitmqUrl: srvRecordToRabbitmqURL(resolvedRecord) },
{ logger }
);
return await rabbitmqProvider.submitTx(args);
}
throw error;
Expand All @@ -69,7 +68,7 @@ export const getRabbitMqTxSubmitProvider = async (
): Promise<RabbitMqTxSubmitProvider> => {
if (options?.rabbitmqSrvServiceName)
return rabbitMqTxSubmitProviderWithDiscovery(dnsResolver, logger, options.rabbitmqSrvServiceName);
if (options?.rabbitmqUrl) return new RabbitMqTxSubmitProvider({ rabbitmqUrl: options.rabbitmqUrl });
if (options?.rabbitmqUrl) return new RabbitMqTxSubmitProvider({ rabbitmqUrl: options.rabbitmqUrl }, { logger });
throw new MissingProgramOption(ServiceNames.TxSubmit, [
CommonOptionDescriptions.RabbitMQUrl,
CommonOptionDescriptions.RabbitMQSrvServiceName
Expand Down
@@ -1,6 +1,6 @@
import { Cardano, RewardHistoryProps, RewardsProvider } from '@cardano-sdk/core';
import { DbSyncProvider } from '../../DbSyncProvider';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { Pool } from 'pg';
import { RewardsBuilder } from './RewardsBuilder';
import { rewardsToCore } from './mappers';
Expand All @@ -9,7 +9,7 @@ export class DbSyncRewardsProvider extends DbSyncProvider implements RewardsProv
#builder: RewardsBuilder;
#logger: Logger;

constructor(db: Pool, logger = dummyLogger) {
constructor(db: Pool, logger: Logger) {
super(db);
this.#builder = new RewardsBuilder(db, logger);
this.#logger = logger;
Expand Down
@@ -1,13 +1,13 @@
import { AccountBalanceModel, RewardEpochModel } from './types';
import { Cardano, EpochRange } from '@cardano-sdk/core';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { Pool, QueryResult } from 'pg';
import { findAccountBalance, findRewardsHistory } from './queries';

export class RewardsBuilder {
#db: Pool;
#logger: Logger;
constructor(db: Pool, logger = dummyLogger) {
constructor(db: Pool, logger: Logger) {
this.#db = db;
this.#logger = logger;
}
Expand Down
9 changes: 3 additions & 6 deletions packages/cardano-services/src/Rewards/RewardsHttpService.ts
@@ -1,22 +1,19 @@
import * as OpenApiValidator from 'express-openapi-validator';
import { HttpService } from '../Http';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { RewardsProvider } from '@cardano-sdk/core';
import { ServiceNames } from '../Program';
import { providerHandler } from '../util';
import express from 'express';
import path from 'path';

export interface RewardServiceDependencies {
logger?: Logger;
logger: Logger;
rewardsProvider: RewardsProvider;
}

export class RewardsHttpService extends HttpService {
constructor(
{ logger = dummyLogger, rewardsProvider }: RewardServiceDependencies,
router: express.Router = express.Router()
) {
constructor({ logger, rewardsProvider }: RewardServiceDependencies, router: express.Router = express.Router()) {
super(ServiceNames.Rewards, rewardsProvider, router, logger);

const apiSpec = path.join(__dirname, 'openApi.json');
Expand Down
6 changes: 3 additions & 3 deletions packages/cardano-services/src/RunnableModule.ts
@@ -1,7 +1,7 @@
import { contextLogger } from '@cardano-sdk/util';

import { InvalidModuleState } from './errors';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { ModuleState } from './types';

export type RunnableModuleState = ModuleState | 'starting' | 'running' | 'stopping';
Expand All @@ -14,9 +14,9 @@ export abstract class RunnableModule {
logger: Logger;
name: string;

protected constructor(name: string, logger: Logger = dummyLogger) {
protected constructor(name: string, logger: Logger) {
this.state = null;
this.logger = contextLogger(logger, name) || dummyLogger;
this.logger = contextLogger(logger, name);
this.name = name;
}

Expand Down
@@ -1,6 +1,6 @@
import { CommonPoolInfo, PoolAPY, PoolData, PoolMetrics, PoolSortType } from './types';
import { DbSyncProvider } from '../../DbSyncProvider';
import { Logger, dummyLogger } from 'ts-log';
import { Logger } from 'ts-log';
import { Pool } from 'pg';
import { StakePoolBuilder } from './StakePoolBuilder';
import { StakePoolProvider, StakePoolQueryOptions, StakePoolSearchResults, StakePoolStats } from '@cardano-sdk/core';
Expand All @@ -12,7 +12,7 @@ export class DbSyncStakePoolProvider extends DbSyncProvider implements StakePool
#builder: StakePoolBuilder;
#logger: Logger;

constructor(db: Pool, logger = dummyLogger) {
constructor(db: Pool, logger: Logger) {
super(db);
this.#builder = new StakePoolBuilder(db, logger);
this.#logger = logger;
Expand Down

0 comments on commit 9b3e26c

Please sign in to comment.