From 5191f6996cde847ef79dd4a0a59cce09b9fe59ce Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Thu, 28 Nov 2019 06:08:11 +0200 Subject: [PATCH] feat(core-test-framework): support modifiers in transaction factories --- .../transaction-forging/__support__/index.ts | 2 +- .../bridgechain-registration.test.ts | 2 +- .../bridgechain-resignation.test.ts | 2 +- .../bridgechain-update.test.ts | 2 +- .../business-registration.test.ts | 2 +- .../business-resignation.test.ts | 2 +- .../business-update.test.ts | 2 +- .../delegate-registration.test.ts | 2 +- .../delegate-resignation.test.ts | 2 +- .../transaction-forging/htlc-claim.test.ts | 2 +- .../transaction-forging/htlc-lock.test.ts | 2 +- .../transaction-forging/htlc-refund.test.ts | 2 +- .../transaction-forging/ipfs.test.ts | 2 +- .../transaction-forging/multi-payment.test.ts | 2 +- .../multi-signature-registration.test.ts | 2 +- .../second-signature-registration.test.ts | 2 +- .../transaction-forging/transfer.test.ts | 2 +- .../transaction-forging/vote.test.ts | 2 +- .../core-api/handlers/blocks.test.ts | 2 +- .../core-api/handlers/transactions.test.ts | 2 +- packages/core-api/src/server.ts | 2 - packages/core-kernel/src/application.ts | 1 - .../boot-service-providers.ts | 1 - .../register-service-providers.ts | 2 - .../src/services/config/watcher.ts | 1 - .../src/services/validation/drivers/joi.ts | 1 - packages/core-logger-pino/src/driver.ts | 3 - .../src/factories/factories/block.ts | 2 +- .../src/factories/factories/round.ts | 4 +- .../src/factories/factories/transaction.ts | 190 ++++++++++++------ .../src/factories/factories/wallet.ts | 2 +- .../src/factories/factory.ts | 1 - .../src/factories/helpers.ts | 2 +- .../src/generators/delegates.ts | 26 --- .../src/generators/index.ts | 1 - .../src/generators/network.ts | 3 +- .../src/internal/delegates.ts | 2 +- .../{secrets.json => passphrases.json} | 0 packages/core-test-framework/src/utils/api.ts | 2 +- .../src/utils/rest-client.ts | 24 +++ .../src/utils/transaction-factory.ts | 2 +- packages/core-webhooks/src/server/index.ts | 2 - packages/core/src/commands/config/cli.ts | 1 - packages/core/src/commands/config/database.ts | 5 +- .../core/src/commands/config/forger/bip38.ts | 9 +- .../core/src/commands/config/forger/bip39.ts | 6 +- packages/core/src/commands/config/publish.ts | 2 +- .../core/src/commands/network/generate.ts | 1 - packages/core/src/common/parser.ts | 1 - packages/core/src/hooks/init/update.ts | 2 +- 50 files changed, 192 insertions(+), 149 deletions(-) delete mode 100644 packages/core-test-framework/src/generators/delegates.ts rename packages/core-test-framework/src/internal/{secrets.json => passphrases.json} (100%) diff --git a/__tests__/functional/transaction-forging/__support__/index.ts b/__tests__/functional/transaction-forging/__support__/index.ts index d82ae9a8ff..d867932ba6 100644 --- a/__tests__/functional/transaction-forging/__support__/index.ts +++ b/__tests__/functional/transaction-forging/__support__/index.ts @@ -2,7 +2,7 @@ import "jest-extended"; import { Contracts, Container } from "@arkecosystem/core-kernel"; import { Utils, Identities } from "@arkecosystem/crypto"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; jest.setTimeout(1200000); diff --git a/__tests__/functional/transaction-forging/bridgechain-registration.test.ts b/__tests__/functional/transaction-forging/bridgechain-registration.test.ts index 0f5b0d2047..207ec39fcc 100644 --- a/__tests__/functional/transaction-forging/bridgechain-registration.test.ts +++ b/__tests__/functional/transaction-forging/bridgechain-registration.test.ts @@ -5,7 +5,7 @@ import { Identities } from "@arkecosystem/crypto"; import { generateMnemonic } from "bip39"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; let app: Contracts.Kernel.Application; diff --git a/__tests__/functional/transaction-forging/bridgechain-resignation.test.ts b/__tests__/functional/transaction-forging/bridgechain-resignation.test.ts index cda0ce5f24..6879f4b848 100644 --- a/__tests__/functional/transaction-forging/bridgechain-resignation.test.ts +++ b/__tests__/functional/transaction-forging/bridgechain-resignation.test.ts @@ -5,7 +5,7 @@ import { Identities } from "@arkecosystem/crypto"; import { generateMnemonic } from "bip39"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; let app: Contracts.Kernel.Application; diff --git a/__tests__/functional/transaction-forging/bridgechain-update.test.ts b/__tests__/functional/transaction-forging/bridgechain-update.test.ts index e1ca7ce37f..df88139359 100644 --- a/__tests__/functional/transaction-forging/bridgechain-update.test.ts +++ b/__tests__/functional/transaction-forging/bridgechain-update.test.ts @@ -5,7 +5,7 @@ import { Identities } from "@arkecosystem/crypto"; import { generateMnemonic } from "bip39"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; let app: Contracts.Kernel.Application; diff --git a/__tests__/functional/transaction-forging/business-registration.test.ts b/__tests__/functional/transaction-forging/business-registration.test.ts index 755b5fe84e..d1dd5f11e3 100644 --- a/__tests__/functional/transaction-forging/business-registration.test.ts +++ b/__tests__/functional/transaction-forging/business-registration.test.ts @@ -5,7 +5,7 @@ import { Identities } from "@arkecosystem/crypto"; import { generateMnemonic } from "bip39"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; let app: Contracts.Kernel.Application; diff --git a/__tests__/functional/transaction-forging/business-resignation.test.ts b/__tests__/functional/transaction-forging/business-resignation.test.ts index ee9b13d7b5..b01b4232d4 100644 --- a/__tests__/functional/transaction-forging/business-resignation.test.ts +++ b/__tests__/functional/transaction-forging/business-resignation.test.ts @@ -5,7 +5,7 @@ import { Identities } from "@arkecosystem/crypto"; import { generateMnemonic } from "bip39"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; let app: Contracts.Kernel.Application; diff --git a/__tests__/functional/transaction-forging/business-update.test.ts b/__tests__/functional/transaction-forging/business-update.test.ts index a2eec285f7..0bc6f4bf27 100644 --- a/__tests__/functional/transaction-forging/business-update.test.ts +++ b/__tests__/functional/transaction-forging/business-update.test.ts @@ -5,7 +5,7 @@ import { Identities } from "@arkecosystem/crypto"; import { generateMnemonic } from "bip39"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; let app: Contracts.Kernel.Application; diff --git a/__tests__/functional/transaction-forging/delegate-registration.test.ts b/__tests__/functional/transaction-forging/delegate-registration.test.ts index 1aa4a495de..b6926358fd 100644 --- a/__tests__/functional/transaction-forging/delegate-registration.test.ts +++ b/__tests__/functional/transaction-forging/delegate-registration.test.ts @@ -4,7 +4,7 @@ import { Contracts } from "@arkecosystem/core-kernel"; import { Identities } from "@arkecosystem/crypto"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/functional/transaction-forging/delegate-resignation.test.ts b/__tests__/functional/transaction-forging/delegate-resignation.test.ts index e9dd265c34..4d448a2122 100644 --- a/__tests__/functional/transaction-forging/delegate-resignation.test.ts +++ b/__tests__/functional/transaction-forging/delegate-resignation.test.ts @@ -5,7 +5,7 @@ import { Identities } from "@arkecosystem/crypto"; import { generateMnemonic } from "bip39"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const genesisPassphrase: string = secrets[0]; diff --git a/__tests__/functional/transaction-forging/htlc-claim.test.ts b/__tests__/functional/transaction-forging/htlc-claim.test.ts index c67bd43265..0d0bf49687 100644 --- a/__tests__/functional/transaction-forging/htlc-claim.test.ts +++ b/__tests__/functional/transaction-forging/htlc-claim.test.ts @@ -4,7 +4,7 @@ import { Contracts } from "@arkecosystem/core-kernel"; import { Crypto, Enums, Identities } from "@arkecosystem/crypto"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/functional/transaction-forging/htlc-lock.test.ts b/__tests__/functional/transaction-forging/htlc-lock.test.ts index 00804cbd42..c862b939ae 100644 --- a/__tests__/functional/transaction-forging/htlc-lock.test.ts +++ b/__tests__/functional/transaction-forging/htlc-lock.test.ts @@ -4,7 +4,7 @@ import { Contracts } from "@arkecosystem/core-kernel"; import { Crypto, Enums, Identities } from "@arkecosystem/crypto"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/functional/transaction-forging/htlc-refund.test.ts b/__tests__/functional/transaction-forging/htlc-refund.test.ts index 2d617e2a21..6b86f49606 100644 --- a/__tests__/functional/transaction-forging/htlc-refund.test.ts +++ b/__tests__/functional/transaction-forging/htlc-refund.test.ts @@ -4,7 +4,7 @@ import { Contracts } from "@arkecosystem/core-kernel"; import { Crypto, Enums, Identities } from "@arkecosystem/crypto"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/functional/transaction-forging/ipfs.test.ts b/__tests__/functional/transaction-forging/ipfs.test.ts index 07c2dbaf72..173496ecee 100644 --- a/__tests__/functional/transaction-forging/ipfs.test.ts +++ b/__tests__/functional/transaction-forging/ipfs.test.ts @@ -4,7 +4,7 @@ import { Contracts } from "@arkecosystem/core-kernel"; import { Identities } from "@arkecosystem/crypto"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/functional/transaction-forging/multi-payment.test.ts b/__tests__/functional/transaction-forging/multi-payment.test.ts index 0104b17a8e..02bba40297 100644 --- a/__tests__/functional/transaction-forging/multi-payment.test.ts +++ b/__tests__/functional/transaction-forging/multi-payment.test.ts @@ -4,7 +4,7 @@ import { Contracts } from "@arkecosystem/core-kernel"; import { Identities, Utils, Managers } from "@arkecosystem/crypto"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/functional/transaction-forging/multi-signature-registration.test.ts b/__tests__/functional/transaction-forging/multi-signature-registration.test.ts index f5ee54b968..54b12fec2b 100644 --- a/__tests__/functional/transaction-forging/multi-signature-registration.test.ts +++ b/__tests__/functional/transaction-forging/multi-signature-registration.test.ts @@ -9,7 +9,7 @@ import { injectMilestone, TransactionFactory, } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/functional/transaction-forging/second-signature-registration.test.ts b/__tests__/functional/transaction-forging/second-signature-registration.test.ts index b336e8f378..e88da0aa91 100644 --- a/__tests__/functional/transaction-forging/second-signature-registration.test.ts +++ b/__tests__/functional/transaction-forging/second-signature-registration.test.ts @@ -4,7 +4,7 @@ import { Contracts } from "@arkecosystem/core-kernel"; import { Identities } from "@arkecosystem/crypto"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; let app: Contracts.Kernel.Application; diff --git a/__tests__/functional/transaction-forging/transfer.test.ts b/__tests__/functional/transaction-forging/transfer.test.ts index 4802e9af26..3f44792cc2 100644 --- a/__tests__/functional/transaction-forging/transfer.test.ts +++ b/__tests__/functional/transaction-forging/transfer.test.ts @@ -9,7 +9,7 @@ import { injectMilestone, TransactionFactory, } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/functional/transaction-forging/vote.test.ts b/__tests__/functional/transaction-forging/vote.test.ts index 7a7fb72e0f..4426dfe603 100644 --- a/__tests__/functional/transaction-forging/vote.test.ts +++ b/__tests__/functional/transaction-forging/vote.test.ts @@ -4,7 +4,7 @@ import { Contracts } from "@arkecosystem/core-kernel"; import { Identities } from "@arkecosystem/crypto"; import { snoozeForBlock, TransactionFactory } from "@packages/core-test-framework/src/utils"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import * as support from "./__support__"; const { passphrase, secondPassphrase } = support.passphrases; diff --git a/__tests__/integration/core-api/handlers/blocks.test.ts b/__tests__/integration/core-api/handlers/blocks.test.ts index 9f03712bf4..99177a4471 100644 --- a/__tests__/integration/core-api/handlers/blocks.test.ts +++ b/__tests__/integration/core-api/handlers/blocks.test.ts @@ -3,7 +3,7 @@ import "@packages/core-test-framework/src/matchers"; import { setUp, tearDown } from "../__support__/setup"; import { Contracts, Container } from "@arkecosystem/core-kernel"; -import { Interfaces,Managers } from "@arkecosystem/crypto"; +import { Interfaces, Managers } from "@arkecosystem/crypto"; import { Repositories } from "@arkecosystem/core-database"; import { ApiHelpers, Factories } from "@packages/core-test-framework/src"; diff --git a/__tests__/integration/core-api/handlers/transactions.test.ts b/__tests__/integration/core-api/handlers/transactions.test.ts index 75f47280d5..169d221be4 100644 --- a/__tests__/integration/core-api/handlers/transactions.test.ts +++ b/__tests__/integration/core-api/handlers/transactions.test.ts @@ -7,7 +7,7 @@ import { Repositories } from "@arkecosystem/core-database"; import { generateMnemonic } from "bip39"; import { TransactionFactory } from "@packages/core-test-framework/src/utils/transaction-factory"; -import secrets from "@packages/core-test-framework/src/internal/secrets.json"; +import secrets from "@packages/core-test-framework/src/internal/passphrases.json"; import { ApiHelpers, getWalletNonce } from "@packages/core-test-framework/src"; import { Contracts } from "@arkecosystem/core-kernel"; diff --git a/packages/core-api/src/server.ts b/packages/core-api/src/server.ts index 2fa54385b0..b350bc4a53 100644 --- a/packages/core-api/src/server.ts +++ b/packages/core-api/src/server.ts @@ -154,13 +154,11 @@ export class Server { }, routes: { payload: { - /* istanbul ignore next */ async failAction(request, h, err) { return badData(err.message); }, }, validate: { - /* istanbul ignore next */ async failAction(request, h, err) { return badData(err.message); }, diff --git a/packages/core-kernel/src/application.ts b/packages/core-kernel/src/application.ts index 63033f0dcc..1439e543cd 100644 --- a/packages/core-kernel/src/application.ts +++ b/packages/core-kernel/src/application.ts @@ -382,7 +382,6 @@ export class Application implements Contracts.Kernel.Application { public rebind( serviceIdentifier: Contracts.Kernel.Container.ServiceIdentifier, ): Contracts.Kernel.Container.BindingToSyntax { - /* istanbul ignore else */ if (this.container.isBound(serviceIdentifier)) { this.container.unbind(serviceIdentifier); } diff --git a/packages/core-kernel/src/bootstrap/service-providers/boot-service-providers.ts b/packages/core-kernel/src/bootstrap/service-providers/boot-service-providers.ts index 6c10cf22f3..043c8ebf62 100644 --- a/packages/core-kernel/src/bootstrap/service-providers/boot-service-providers.ts +++ b/packages/core-kernel/src/bootstrap/service-providers/boot-service-providers.ts @@ -90,7 +90,6 @@ export class BootServiceProviders implements Bootstrapper { await this.serviceProviders.dispose(name); } - /* istanbul ignore else */ if (this.serviceProviders.deferred(name) && (await serviceProvider.bootWhen(previous))) { await this.serviceProviders.boot(name); } diff --git a/packages/core-kernel/src/bootstrap/service-providers/register-service-providers.ts b/packages/core-kernel/src/bootstrap/service-providers/register-service-providers.ts index a08809f07d..5ba8347e82 100644 --- a/packages/core-kernel/src/bootstrap/service-providers/register-service-providers.ts +++ b/packages/core-kernel/src/bootstrap/service-providers/register-service-providers.ts @@ -145,13 +145,11 @@ export class RegisterServiceProviders implements Bootstrapper { return false; } - /* istanbul ignore else */ if (constraint) { const version: string | undefined = serviceProviders.get(name).version(); assert.defined(version); - /* istanbul ignore else */ if (!semver.satisfies(version, constraint)) { const error: DependencyVersionOutOfRange = new DependencyVersionOutOfRange( name, diff --git a/packages/core-kernel/src/services/config/watcher.ts b/packages/core-kernel/src/services/config/watcher.ts index 31edf1c39d..2d1b291b6f 100644 --- a/packages/core-kernel/src/services/config/watcher.ts +++ b/packages/core-kernel/src/services/config/watcher.ts @@ -58,7 +58,6 @@ export class Watcher { this.watcher = await nsfw(this.app.configPath(), (events: FileEvent[]) => { for (const event of events) { - /* istanbul ignore else */ if (configFiles.includes(event.file) && event.action === nsfw.actions.MODIFIED) { this.app.reboot(); } diff --git a/packages/core-kernel/src/services/validation/drivers/joi.ts b/packages/core-kernel/src/services/validation/drivers/joi.ts index 426473368e..28794418ba 100644 --- a/packages/core-kernel/src/services/validation/drivers/joi.ts +++ b/packages/core-kernel/src/services/validation/drivers/joi.ts @@ -155,7 +155,6 @@ export class JoiValidator implements Validator { for (const error of this.resultError) { const errorKey: string | number = error.path[0]; - /* istanbul ignore else */ if (!Array.isArray(errors[errorKey])) { errors[errorKey] = []; } diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index 44da2bc860..cb238bc6f5 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -230,18 +230,15 @@ export class PinoLogger implements Contracts.Kernel.Logger { try { const json = JSON.parse(chunk); - /* istanbul ignore else */ if (getLevel(json.level) >= getLevel(level)) { const line: string | undefined = pinoPretty(json); - /* istanbul ignore else */ if (line !== undefined) { return cb(undefined, line.replace("USERLVL", formatLevel(json.level))); } } } catch {} - /* istanbul ignore next */ return cb(); }, }); diff --git a/packages/core-test-framework/src/factories/factories/block.ts b/packages/core-test-framework/src/factories/factories/block.ts index f2338310d9..74df97bea3 100644 --- a/packages/core-test-framework/src/factories/factories/block.ts +++ b/packages/core-test-framework/src/factories/factories/block.ts @@ -1,8 +1,8 @@ import { DelegateFactory } from "@arkecosystem/core-forger"; import { Crypto, Managers } from "@arkecosystem/crypto"; +import secrets from "../../internal/passphrases.json"; import { Signer } from "../../internal/signer"; -import secrets from "../../internal/secrets.json"; import { FactoryBuilder } from "../factory-builder"; export const registerBlockFactory = (factory: FactoryBuilder): void => { diff --git a/packages/core-test-framework/src/factories/factories/round.ts b/packages/core-test-framework/src/factories/factories/round.ts index c0a6f4b297..c3648cdf44 100644 --- a/packages/core-test-framework/src/factories/factories/round.ts +++ b/packages/core-test-framework/src/factories/factories/round.ts @@ -2,9 +2,9 @@ import { Utils } from "@arkecosystem/core-kernel"; import { Wallets } from "@arkecosystem/core-state"; import { Identities } from "@arkecosystem/crypto"; -import { FactoryBuilder } from "../factory-builder"; -import passphrases from "../../internal/secrets.json"; +import passphrases from "../../internal/passphrases.json"; import { knownAttributes } from "../../internal/wallet-attributes"; +import { FactoryBuilder } from "../factory-builder"; export const registerRoundFactory = (factory: FactoryBuilder): void => { factory.set("Round", ({ options }) => { diff --git a/packages/core-test-framework/src/factories/factories/transaction.ts b/packages/core-test-framework/src/factories/factories/transaction.ts index e65ad22f60..77e37ea6c1 100644 --- a/packages/core-test-framework/src/factories/factories/transaction.ts +++ b/packages/core-test-framework/src/factories/factories/transaction.ts @@ -7,7 +7,7 @@ import bs58 from "bs58"; import Chance from "chance"; import { createHash } from "crypto"; -import secrets from "../../internal/secrets.json"; +import secrets from "../../internal/passphrases.json"; import { FactoryBuilder } from "../factory-builder"; import { FactoryFunctionOptions } from "../types"; @@ -38,11 +38,42 @@ const multiSign = ({ entity, options }: FactoryFunctionOptions) => { return entity; }; +const applyModifiers = (entity, options) => { + if (options.version) { + entity.version(options.version); + } + + if (entity.data.version > 1 && options.nonce) { + entity.nonce(options.nonce); + } + + if (options.fee) { + entity.fee(options.fee.toFixed()); + } + + if (options.timestamp) { + entity.data.timestamp = options.timestamp; + } + + if (options.senderPublicKey) { + entity.senderPublicKey(options.senderPublicKey); + } + + if (options.expiration) { + entity.expiration(options.expiration); + } + + return entity; +}; + export const registerTransferFactory = (factory: FactoryBuilder): void => { factory.set("Transfer", ({ options }) => - Transactions.BuilderFactory.transfer() - .amount(Utils.BigNumber.make(options.amount || 1).toFixed()) - .recipientId(options.recipientId || Identities.Address.fromPassphrase(secrets[0])), + applyModifiers( + Transactions.BuilderFactory.transfer() + .amount(Utils.BigNumber.make(options.amount || 1).toFixed()) + .recipientId(options.recipientId || Identities.Address.fromPassphrase(secrets[0])), + options, + ), ); factory @@ -56,7 +87,10 @@ export const registerTransferFactory = (factory: FactoryBuilder): void => { export const registerSecondSignatureFactory = (factory: FactoryBuilder): void => { factory.set("SecondSignature", ({ options }) => - Transactions.BuilderFactory.secondSignature().signatureAsset(options.passphrase || secrets[1]), + applyModifiers( + Transactions.BuilderFactory.secondSignature().signatureAsset(options.passphrase || secrets[1]), + options, + ), ); factory.get("SecondSignature").state("sign", sign); @@ -87,9 +121,12 @@ export const registerDelegateResignationFactory = (factory: FactoryBuilder): voi export const registerVoteFactory = (factory: FactoryBuilder): void => { factory.set("Vote", ({ options }) => - Transactions.BuilderFactory.vote().votesAsset([ - `+${options.publicKey || Identities.PublicKey.fromPassphrase(secrets[1])}`, - ]), + applyModifiers( + Transactions.BuilderFactory.vote().votesAsset([ + `+${options.publicKey || Identities.PublicKey.fromPassphrase(secrets[1])}`, + ]), + options, + ), ); factory.get("Vote").state("sign", sign); @@ -99,9 +136,12 @@ export const registerVoteFactory = (factory: FactoryBuilder): void => { export const registerUnvoteFactory = (factory: FactoryBuilder): void => { factory.set("Unvote", ({ options }) => - Transactions.BuilderFactory.vote().votesAsset([ - `-${options.publicKey || Identities.PublicKey.fromPassphrase(secrets[1])}`, - ]), + applyModifiers( + Transactions.BuilderFactory.vote().votesAsset([ + `-${options.publicKey || Identities.PublicKey.fromPassphrase(secrets[1])}`, + ]), + options, + ), ); factory.get("Unvote").state("sign", sign); @@ -111,7 +151,7 @@ export const registerUnvoteFactory = (factory: FactoryBuilder): void => { export const registerMultiSignatureFactory = (factory: FactoryBuilder): void => { factory.set("MultiSignature", ({ options }) => { - const builder = Transactions.BuilderFactory.multiSignature(); + const builder = applyModifiers(Transactions.BuilderFactory.multiSignature(), options); const publicKeys: string[] = options.publicKeys || [ Identities.PublicKey.fromPassphrase(secrets[0]), @@ -135,7 +175,10 @@ export const registerMultiSignatureFactory = (factory: FactoryBuilder): void => export const registerIpfsFactory = (factory: FactoryBuilder): void => { factory.set("Ipfs", ({ options }) => - Transactions.BuilderFactory.ipfs().ipfsAsset(options.id || bs58.encode(Buffer.from(randomHash(), "hex"))), + applyModifiers( + Transactions.BuilderFactory.ipfs().ipfsAsset(options.id || bs58.encode(Buffer.from(randomHash(), "hex"))), + options, + ), ); factory.get("Ipfs").state("sign", sign); @@ -145,13 +188,16 @@ export const registerIpfsFactory = (factory: FactoryBuilder): void => { export const registerHtlcLockFactory = (factory: FactoryBuilder): void => { factory.set("HtlcLock", ({ options }) => - Transactions.BuilderFactory.htlcLock().htlcLockAsset({ - secretHash: options.secretHash || randomHash(), - expiration: options.expiration || { - type: Enums.HtlcLockExpirationType.EpochTimestamp, - value: Math.floor(Date.now() / 1000), - }, - }), + applyModifiers( + Transactions.BuilderFactory.htlcLock().htlcLockAsset({ + secretHash: options.secretHash || randomHash(), + expiration: options.expiration || { + type: Enums.HtlcLockExpirationType.EpochTimestamp, + value: Math.floor(Date.now() / 1000), + }, + }), + options, + ), ); factory.get("HtlcLock").state("sign", sign); @@ -161,14 +207,17 @@ export const registerHtlcLockFactory = (factory: FactoryBuilder): void => { export const registerHtlcClaimFactory = (factory: FactoryBuilder): void => { factory.set("HtlcClaim", ({ options }) => - Transactions.BuilderFactory.htlcClaim().htlcClaimAsset({ - lockTransactionId: options.lockTransactionId || randomHash(), - unlockSecret: - options.unlockSecret || - Math.random() - .toString(36) - .substring(8), - }), + applyModifiers( + Transactions.BuilderFactory.htlcClaim().htlcClaimAsset({ + lockTransactionId: options.lockTransactionId || randomHash(), + unlockSecret: + options.unlockSecret || + Math.random() + .toString(36) + .substring(8), + }), + options, + ), ); factory.get("HtlcClaim").state("sign", sign); @@ -178,9 +227,12 @@ export const registerHtlcClaimFactory = (factory: FactoryBuilder): void => { export const registerHtlcRefundFactory = (factory: FactoryBuilder): void => { factory.set("HtlcRefund", ({ options }) => - Transactions.BuilderFactory.htlcRefund().htlcRefundAsset({ - lockTransactionId: options.lockTransactionId || randomHash(), - }), + applyModifiers( + Transactions.BuilderFactory.htlcRefund().htlcRefundAsset({ + lockTransactionId: options.lockTransactionId || randomHash(), + }), + options, + ), ); factory.get("HtlcRefund").state("sign", sign); @@ -190,9 +242,12 @@ export const registerHtlcRefundFactory = (factory: FactoryBuilder): void => { export const registerMultiPaymentFactory = (factory: FactoryBuilder): void => { factory.set("MultiPayment", ({ options }) => - Transactions.BuilderFactory.multiPayment().addPayment( - options.recipientId || Identities.Address.fromPassphrase(secrets[0]), - Utils.BigNumber.make(options.amount || 1).toFixed(), + applyModifiers( + Transactions.BuilderFactory.multiPayment().addPayment( + options.recipientId || Identities.Address.fromPassphrase(secrets[0]), + Utils.BigNumber.make(options.amount || 1).toFixed(), + ), + options, ), ); @@ -209,10 +264,13 @@ export const registerBusinessRegistrationFactory = (factory: FactoryBuilder): vo } catch {} factory.set("BusinessRegistration", ({ options }) => - new MagistrateBuilders.BusinessRegistrationBuilder().businessRegistrationAsset({ - name: options.name || chance.first(), - website: options.website || chance.domain(), - }), + applyModifiers( + new MagistrateBuilders.BusinessRegistrationBuilder().businessRegistrationAsset({ + name: options.name || chance.first(), + website: options.website || chance.domain(), + }), + options, + ), ); factory.get("BusinessRegistration").state("sign", sign); @@ -225,7 +283,9 @@ export const registerBusinessResignationFactory = (factory: FactoryBuilder): voi Transactions.TransactionRegistry.registerTransactionType(MagistrateTransactions.BusinessResignationTransaction); } catch {} - factory.set("BusinessResignation", () => new MagistrateBuilders.BusinessResignationBuilder()); + factory.set("BusinessResignation", ({ options }) => + applyModifiers(new MagistrateBuilders.BusinessResignationBuilder(), options), + ); factory.get("BusinessResignation").state("sign", sign); factory.get("BusinessResignation").state("secondSign", secondSign); @@ -238,12 +298,15 @@ export const registerBusinessUpdateFactory = (factory: FactoryBuilder): void => } catch {} factory.set("BusinessUpdate", ({ options }) => - new MagistrateBuilders.BusinessUpdateBuilder().businessUpdateAsset({ - name: options.name || chance.first(), - website: options.website || chance.domain(), - vat: options.vat, - repository: options.repository || chance.domain(), - }), + applyModifiers( + new MagistrateBuilders.BusinessUpdateBuilder().businessUpdateAsset({ + name: options.name || chance.first(), + website: options.website || chance.domain(), + vat: options.vat, + repository: options.repository || chance.domain(), + }), + options, + ), ); factory.get("BusinessUpdate").state("sign", sign); @@ -259,13 +322,16 @@ export const registerBridgechainRegistrationFactory = (factory: FactoryBuilder): } catch {} factory.set("BridgechainRegistration", ({ options }) => - new MagistrateBuilders.BridgechainRegistrationBuilder().bridgechainRegistrationAsset({ - name: options.name || chance.first(), - seedNodes: options.seedNodes || [chance.ip(), chance.ip(), chance.ip()], - genesisHash: options.genesisHash || randomHash(), - bridgechainRepository: options.bridgechainRepository || chance.domain(), - ports: options.ports || { "@arkecosystem/core-api": chance.port() }, - }), + applyModifiers( + new MagistrateBuilders.BridgechainRegistrationBuilder().bridgechainRegistrationAsset({ + name: options.name || chance.first(), + seedNodes: options.seedNodes || [chance.ip(), chance.ip(), chance.ip()], + genesisHash: options.genesisHash || randomHash(), + bridgechainRepository: options.bridgechainRepository || chance.domain(), + ports: options.ports || { "@arkecosystem/core-api": chance.port() }, + }), + options, + ), ); factory.get("BridgechainRegistration").state("sign", sign); @@ -281,8 +347,11 @@ export const registerBridgechainResignationFactory = (factory: FactoryBuilder): } catch {} factory.set("BridgechainResignation", ({ options }) => - new MagistrateBuilders.BridgechainResignationBuilder().bridgechainResignationAsset( - options.genesisHash || randomHash(), + applyModifiers( + new MagistrateBuilders.BridgechainResignationBuilder().bridgechainResignationAsset( + options.genesisHash || randomHash(), + ), + options, ), ); @@ -297,11 +366,14 @@ export const registerBridgechainUpdateFactory = (factory: FactoryBuilder): void } catch {} factory.set("BridgechainUpdate", ({ options }) => - new MagistrateBuilders.BridgechainUpdateBuilder().bridgechainUpdateAsset({ - bridgechainId: options.bridgechainId || randomHash(), - seedNodes: options.seedNodes || [chance.ip(), chance.ip(), chance.ip()], - ports: options.ports || { "@arkecosystem/core-api": chance.port() }, - }), + applyModifiers( + new MagistrateBuilders.BridgechainUpdateBuilder().bridgechainUpdateAsset({ + bridgechainId: options.bridgechainId || randomHash(), + seedNodes: options.seedNodes || [chance.ip(), chance.ip(), chance.ip()], + ports: options.ports || { "@arkecosystem/core-api": chance.port() }, + }), + options, + ), ); factory.get("BridgechainUpdate").state("sign", sign); diff --git a/packages/core-test-framework/src/factories/factories/wallet.ts b/packages/core-test-framework/src/factories/factories/wallet.ts index 9a24d7317d..5fa332f21f 100644 --- a/packages/core-test-framework/src/factories/factories/wallet.ts +++ b/packages/core-test-framework/src/factories/factories/wallet.ts @@ -2,8 +2,8 @@ import { Wallets } from "@arkecosystem/core-state"; import { Identities } from "@arkecosystem/crypto"; import { generateMnemonic } from "bip39"; -import { FactoryBuilder } from "../factory-builder"; import { knownAttributes } from "../../internal/wallet-attributes"; +import { FactoryBuilder } from "../factory-builder"; export const registerWalletFactory = (factory: FactoryBuilder): void => { factory.set("Wallet", ({ options }) => { diff --git a/packages/core-test-framework/src/factories/factory.ts b/packages/core-test-framework/src/factories/factory.ts index aa204595d2..88a76f6cb4 100644 --- a/packages/core-test-framework/src/factories/factory.ts +++ b/packages/core-test-framework/src/factories/factory.ts @@ -188,7 +188,6 @@ export class Factory { * @memberof Factory */ private registerHook(state: string, fn: HookFunction): void { - /* istanbul ignore next */ if (!this.hooks.has(state)) { this.hooks.set(state, new Set()); } diff --git a/packages/core-test-framework/src/factories/helpers.ts b/packages/core-test-framework/src/factories/helpers.ts index b06e202081..c8b68feeb1 100644 --- a/packages/core-test-framework/src/factories/helpers.ts +++ b/packages/core-test-framework/src/factories/helpers.ts @@ -8,8 +8,8 @@ import { registerTransactionFactory, registerWalletFactory, } from "./factories"; -import { FactoryBuilder } from "./factory-builder"; import { Factory } from "./factory"; +import { FactoryBuilder } from "./factory-builder"; const createFactory = memoize( (): FactoryBuilder => { diff --git a/packages/core-test-framework/src/generators/delegates.ts b/packages/core-test-framework/src/generators/delegates.ts deleted file mode 100644 index 1d20b2d7a1..0000000000 --- a/packages/core-test-framework/src/generators/delegates.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Utils } from "@arkecosystem/core-kernel"; -import { Identities } from "@arkecosystem/crypto"; - -import secrets from "../internal/secrets.json"; - -// import { genesisBlock } from "../utils/config/genesisBlock"; - -export const delegates: any = genesisBlock => - secrets.map(secret => { - const publicKey: string = Identities.PublicKey.fromPassphrase(secret); - const address: string = Identities.Address.fromPassphrase(secret); - - const balance: string = genesisBlock.transactions.find( - transaction => transaction.recipientId === address && transaction.type === 0, - ); - - Utils.assert.defined(balance); - - return { - secret, - passphrase: secret, // just an alias for delegate secret - publicKey, - address, - balance, - }; - }); diff --git a/packages/core-test-framework/src/generators/index.ts b/packages/core-test-framework/src/generators/index.ts index a1157d7c56..364667989a 100644 --- a/packages/core-test-framework/src/generators/index.ts +++ b/packages/core-test-framework/src/generators/index.ts @@ -1,2 +1 @@ -export * from "./delegates"; export * from "./network"; diff --git a/packages/core-test-framework/src/generators/network.ts b/packages/core-test-framework/src/generators/network.ts index 9014f426ff..a8a36849d4 100644 --- a/packages/core-test-framework/src/generators/network.ts +++ b/packages/core-test-framework/src/generators/network.ts @@ -6,7 +6,7 @@ import { resolve } from "path"; import { dirSync } from "tmp"; import { ConfigPaths } from "../app/types"; -import secrets from "../internal/secrets.json"; +import secrets from "../internal/passphrases.json"; interface Wallet { address: string; @@ -504,7 +504,6 @@ export class GenerateNetwork { byteBuffer.writeByte(generatorByte); } - /* istanbul ignore next */ if (genesisBlock.blockSignature) { for (const blockSignatureByte of Buffer.from(genesisBlock.blockSignature, "hex")) { byteBuffer.writeByte(blockSignatureByte); diff --git a/packages/core-test-framework/src/internal/delegates.ts b/packages/core-test-framework/src/internal/delegates.ts index 29917b34e0..3b9720680e 100644 --- a/packages/core-test-framework/src/internal/delegates.ts +++ b/packages/core-test-framework/src/internal/delegates.ts @@ -1,6 +1,6 @@ import { Identities } from "@arkecosystem/crypto"; -import passphrases from "./secrets.json"; +import passphrases from "./passphrases.json"; export const addresses: string[] = passphrases.map((passphrase: string) => Identities.Address.fromPassphrase(passphrase), diff --git a/packages/core-test-framework/src/internal/secrets.json b/packages/core-test-framework/src/internal/passphrases.json similarity index 100% rename from packages/core-test-framework/src/internal/secrets.json rename to packages/core-test-framework/src/internal/passphrases.json diff --git a/packages/core-test-framework/src/utils/api.ts b/packages/core-test-framework/src/utils/api.ts index f82ec69d99..3531852871 100644 --- a/packages/core-test-framework/src/utils/api.ts +++ b/packages/core-test-framework/src/utils/api.ts @@ -3,7 +3,7 @@ import "jest-extended"; import { Identifiers } from "@arkecosystem/core-api"; import { Contracts, Utils } from "@arkecosystem/core-kernel"; -import secrets from "../internal/secrets.json"; +import secrets from "../internal/passphrases.json"; import { TransactionFactory } from "./transaction-factory"; export class ApiHelpers { diff --git a/packages/core-test-framework/src/utils/rest-client.ts b/packages/core-test-framework/src/utils/rest-client.ts index 6e376f8d6b..723547b455 100644 --- a/packages/core-test-framework/src/utils/rest-client.ts +++ b/packages/core-test-framework/src/utils/rest-client.ts @@ -1,14 +1,38 @@ import { Utils } from "@arkecosystem/core-kernel"; +/** + * @export + * @class RestClient + */ export class RestClient { + /** + * @static + * @param {string} path + * @param {Utils.HttpOptions} [opts] + * @returns {Promise} + * @memberof RestClient + */ public static async get(path: string, opts?: Utils.HttpOptions): Promise { return Utils.http.get(`http://localhost:4003/api/${path}`, opts); } + /** + * @static + * @param {string} path + * @param {*} body + * @returns {Promise} + * @memberof RestClient + */ public static async post(path: string, body): Promise { return Utils.http.post(`http://localhost:4003/api/${path}`, { body }); } + /** + * @static + * @param {*} transactions + * @returns {Promise} + * @memberof RestClient + */ public static async broadcast(transactions): Promise { return this.post("transactions", { transactions }); } diff --git a/packages/core-test-framework/src/utils/transaction-factory.ts b/packages/core-test-framework/src/utils/transaction-factory.ts index 395fcdb1a7..bb3819286b 100644 --- a/packages/core-test-framework/src/utils/transaction-factory.ts +++ b/packages/core-test-framework/src/utils/transaction-factory.ts @@ -5,7 +5,7 @@ import { } from "@arkecosystem/core-magistrate-crypto"; import { Identities, Interfaces, Managers, Transactions, Types, Utils } from "@arkecosystem/crypto"; -import secrets from "../internal/secrets.json"; +import secrets from "../internal/passphrases.json"; import { getWalletNonce } from "./generic"; const defaultPassphrase: string = secrets[0]; diff --git a/packages/core-webhooks/src/server/index.ts b/packages/core-webhooks/src/server/index.ts index 8dddfc8fe5..fca0b715a5 100644 --- a/packages/core-webhooks/src/server/index.ts +++ b/packages/core-webhooks/src/server/index.ts @@ -120,13 +120,11 @@ export class Server { }, routes: { payload: { - /* istanbul ignore next */ async failAction(request, h, err) { return badData(err.message); }, }, validate: { - /* istanbul ignore next */ async failAction(request, h, err) { return badData(err.message); }, diff --git a/packages/core/src/commands/config/cli.ts b/packages/core/src/commands/config/cli.ts index 0929d1d645..911968a652 100644 --- a/packages/core/src/commands/config/cli.ts +++ b/packages/core/src/commands/config/cli.ts @@ -32,7 +32,6 @@ $ ark config:cli --channel=next public async run(): Promise { const { flags } = this.parse(CommandLineInterfaceCommand); - /* istanbul ignore else */ if (flags.token) { configManager.set("token", flags.token as string); } diff --git a/packages/core/src/commands/config/database.ts b/packages/core/src/commands/config/database.ts index af98448193..0ff5e78194 100644 --- a/packages/core/src/commands/config/database.ts +++ b/packages/core/src/commands/config/database.ts @@ -73,10 +73,7 @@ $ ark config:database --password=password name: "port", message: "What port do you want to use?", initial: 5432, - validate: /* istanbul ignore next */ value => - /* istanbul ignore next */ value < 1 || value > 65535 - ? `The port must be in the range of 1-65535.` - : true, + validate: value => (value < 1 || value > 65535 ? `The port must be in the range of 1-65535.` : true), }, { type: "text", diff --git a/packages/core/src/commands/config/forger/bip38.ts b/packages/core/src/commands/config/forger/bip38.ts index a2a7cae4d8..00c70c9d4e 100644 --- a/packages/core/src/commands/config/forger/bip38.ts +++ b/packages/core/src/commands/config/forger/bip38.ts @@ -44,17 +44,14 @@ $ ark config:forger:bip38 --bip39="..." --password="..." type: "password", name: "bip39", message: "Please enter your delegate passphrase", - validate: /* istanbul ignore next */ value => - /* istanbul ignore next */ !validateMnemonic(value) - ? "Failed to verify the given passphrase as BIP39 compliant." - : true, + validate: value => + !validateMnemonic(value) ? "Failed to verify the given passphrase as BIP39 compliant." : true, }, { type: "password", name: "password", message: "Please enter your desired BIP38 password", - validate: /* istanbul ignore next */ value => - typeof value !== "string" ? "The BIP38 password has to be a string." : true, + validate: value => (typeof value !== "string" ? "The BIP38 password has to be a string." : true), }, { type: "confirm", diff --git a/packages/core/src/commands/config/forger/bip39.ts b/packages/core/src/commands/config/forger/bip39.ts index 18ab119df5..85e1d80215 100644 --- a/packages/core/src/commands/config/forger/bip39.ts +++ b/packages/core/src/commands/config/forger/bip39.ts @@ -39,10 +39,8 @@ $ ark config:forger:bip39 --bip39="..." type: "password", name: "bip39", message: "Please enter your delegate passphrase", - validate: /* istanbul ignore next */ value => - /* istanbul ignore next */ !validateMnemonic(value) - ? `Failed to verify the given passphrase as BIP39 compliant.` - : true, + validate: value => + !validateMnemonic(value) ? `Failed to verify the given passphrase as BIP39 compliant.` : true, }, { type: "confirm", diff --git a/packages/core/src/commands/config/publish.ts b/packages/core/src/commands/config/publish.ts index ec445b7c52..462fae1f94 100644 --- a/packages/core/src/commands/config/publish.ts +++ b/packages/core/src/commands/config/publish.ts @@ -40,7 +40,7 @@ $ ark config:publish --network=mainnet type: "select", name: "network", message: "What network do you want to operate on?", - /* istanbul ignore next */ + choices: Object.keys(Networks).map(network => ({ title: network, value: network })), }, { diff --git a/packages/core/src/commands/network/generate.ts b/packages/core/src/commands/network/generate.ts index 6e15129274..88c7224e86 100644 --- a/packages/core/src/commands/network/generate.ts +++ b/packages/core/src/commands/network/generate.ts @@ -509,7 +509,6 @@ $ ark network:generate --network=mynet7 --premine=120000000000 --delegates=47 -- byteBuffer.writeByte(generatorByte); } - /* istanbul ignore next */ if (genesisBlock.blockSignature) { for (const blockSignatureByte of Buffer.from(genesisBlock.blockSignature, "hex")) { byteBuffer.writeByte(blockSignatureByte); diff --git a/packages/core/src/common/parser.ts b/packages/core/src/common/parser.ts index 444eaff26d..2bedfdbecb 100644 --- a/packages/core/src/common/parser.ts +++ b/packages/core/src/common/parser.ts @@ -16,7 +16,6 @@ export const parseWithNetwork = async ({ args, flags }): Promise<{ args: any; fl if (!flags.network) { let config: string = getEnvPaths(flags.token).config; - /* istanbul ignore else */ if (process.env.CORE_PATH_CONFIG) { config = process.env.CORE_PATH_CONFIG; } diff --git a/packages/core/src/hooks/init/update.ts b/packages/core/src/hooks/init/update.ts index 1aa877e932..1dac4413d8 100644 --- a/packages/core/src/hooks/init/update.ts +++ b/packages/core/src/hooks/init/update.ts @@ -12,7 +12,7 @@ export const init: Hook<"init"> = async function({ id }): Promise { // const state = await checkForUpdates(this); - // /* istanbul ignore else */ + // // if (state.ready) { // this.warn( // `${state.name} update available from ${Chalk.greenBright(state.currentVersion)} to ${Chalk.greenBright(