[Chore] Setup eslint for typescript assets (#505)

- Setup shared eslint config for whole monorepo
- Create lint-ts job for linting typescript files
- Run lint-ts in CI
pull/508/head
J M Rossy 3 years ago committed by GitHub
parent 42ec4ab66d
commit 7be078eb50
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 0
      .eslintignore
  2. 33
      .eslintrc
  3. 3
      .github/workflows/node.yml
  4. 33
      .yarn/plugins/@yarnpkg/plugin-outdated.cjs
  5. 2
      .yarnrc.yml
  6. 15
      package.json
  7. 15
      solidity/app/.eslintrc.json
  8. 1
      solidity/app/test/router.test.ts
  9. 13
      solidity/app/tsconfig.json
  10. 15
      solidity/core/.eslintrc.json
  11. 1
      solidity/core/package.json
  12. 6
      solidity/core/test/.eslintrc
  13. 7
      solidity/core/test/inbox.test.ts
  14. 6
      solidity/core/test/lib/upgrade.ts
  15. 6
      solidity/core/test/merkle.test.ts
  16. 4
      solidity/core/test/outbox.test.ts
  17. 4
      solidity/core/test/validator-manager/multisigValidatorManager.test.ts
  18. 13
      solidity/core/tsconfig.json
  19. 3
      solidity/tsconfig.json
  20. 0
      tsconfig.json
  21. 5
      typescript/deploy/.eslintrc
  22. 4
      typescript/deploy/src/deploy.ts
  23. 2
      typescript/deploy/tsconfig.json
  24. 6
      typescript/hardhat/src/TestCoreApp.ts
  25. 7
      typescript/hardhat/tsconfig.json
  26. 5
      typescript/infra/.eslintrc
  27. 4
      typescript/infra/scripts/get-key-addresses.ts
  28. 12
      typescript/infra/src/agents/aws/key.ts
  29. 1
      typescript/infra/src/agents/gcp.ts
  30. 2
      typescript/infra/src/agents/index.ts
  31. 5
      typescript/infra/src/utils/gcloud.ts
  32. 4
      typescript/infra/src/utils/utils.ts
  33. 2
      typescript/infra/tsconfig.json
  34. 20
      typescript/sdk/.eslintrc.json
  35. 3
      typescript/sdk/package.json
  36. 5
      typescript/sdk/src/.eslintrc
  37. 2
      typescript/sdk/src/app.ts
  38. 1
      typescript/sdk/src/chains.ts
  39. 4
      typescript/sdk/src/contracts.ts
  40. 6
      typescript/sdk/src/core/app.ts
  41. 12
      typescript/sdk/src/core/contracts.ts
  42. 4
      typescript/sdk/src/core/message.ts
  43. 4
      typescript/sdk/src/gas/calculator.ts
  44. 1
      typescript/sdk/src/gas/token-prices.ts
  45. 7
      typescript/sdk/src/gas/utils.ts
  46. 7
      typescript/sdk/src/provider.ts
  47. 3
      typescript/sdk/src/utils.ts
  48. 7
      typescript/sdk/tsconfig.json
  49. 3
      typescript/tsconfig.json
  50. 2
      typescript/utils/src/utils.ts
  51. 6
      typescript/utils/src/validator.ts
  52. 7
      typescript/utils/tsconfig.json
  53. 491
      yarn.lock

@ -0,0 +1,33 @@
{
"env": {
"node": true,
"browser": true,
"es2021": true
},
"root": true,
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module",
"project": "./tsconfig.json"
},
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"rules": {
"no-console": ["error"],
"no-eval": ["error"],
"no-extra-boolean-cast": ["error"],
"no-ex-assign": ["error"],
"no-constant-condition": ["off"],
"@typescript-eslint/ban-ts-comment": ["off"],
"@typescript-eslint/explicit-module-boundary-types": ["off"],
"@typescript-eslint/no-explicit-any": ["off"],
"@typescript-eslint/no-floating-promises": ["error"],
"@typescript-eslint/no-non-null-assertion": ["off"],
"@typescript-eslint/no-require-imports": ["warn"],
}
}

@ -64,6 +64,9 @@ jobs:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-cache4-${{ hashFiles('./yarn.lock') }}
- name: lint-ts
run: yarn lint-ts
- name: prettier
run: |
yarn prettier

File diff suppressed because one or more lines are too long

@ -3,5 +3,7 @@ nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
- path: .yarn/plugins/@yarnpkg/plugin-outdated.cjs
spec: "https://mskelton.dev/yarn-outdated/v3"
yarnPath: .yarn/releases/yarn-3.2.0.cjs

@ -4,21 +4,24 @@
"version": "0.0.0",
"devDependencies": {
"@trivago/prettier-plugin-sort-imports": "^3.2.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"@typescript-eslint/eslint-plugin": "^5.27.0",
"@typescript-eslint/parser": "^5.27.0",
"eslint": "^8.16.0",
"eslint-config-prettier": "^8.5.0",
"husky": "^8.0.0",
"lint-staged": "^12.4.2",
"lint-staged": "^12.4.3",
"prettier": "^2.4.1",
"prettier-plugin-solidity": "^1.0.0-beta.5",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
"ts-node": "^10.8.0",
"typescript": "^4.7.2"
},
"packageManager": "yarn@3.2.0",
"private": true,
"scripts": {
"build": "yarn workspaces foreach --parallel --topological run build",
"postinstall": "husky install",
"prettier": "yarn workspaces foreach --parallel run prettier"
"prettier": "yarn workspaces foreach --parallel run prettier",
"lint-ts": "eslint . --ext .ts"
},
"workspaces": [
"solidity/*",

@ -1,15 +0,0 @@
{
"env": {
"browser": true,
"node": true,
"es2021": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"rules": {
"no-undef": "off"
}
}

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/no-floating-promises */
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { expect } from 'chai';
import { ContractTransaction } from 'ethers';

@ -3,14 +3,7 @@
"outDir": "./dist/",
"rootDir": "./types/"
},
"exclude": [
"./node_modules/",
"./dist/",
"./types/hardhat.d.ts"
],
"extends": "../../tsconfig.package.json",
"include": [
"./types/*.ts",
"./types/factories/*.ts"
]
"exclude": ["./node_modules/", "./dist/", "./types/hardhat.d.ts"],
"extends": "../../tsconfig.json",
"include": ["./types/*.ts", "./types/factories/*.ts"]
}

@ -1,15 +0,0 @@
{
"env": {
"browser": true,
"node": true,
"es2021": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"rules": {
"no-undef": "off"
}
}

@ -22,7 +22,6 @@
"solhint-plugin-prettier": "^0.0.5",
"solidity-coverage": "^0.7.14",
"ts-generator": "^0.1.1",
"ts-node": "^10.1.0",
"typechain": "^5.0.0"
},
"directories": {

@ -0,0 +1,6 @@
{
"rules": {
"@typescript-eslint/no-require-imports": ["off"],
"@typescript-eslint/no-var-requires": ["off"]
}
}

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/no-floating-promises */
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { expect } from 'chai';
import { ethers } from 'hardhat';
@ -108,7 +109,7 @@ describe('Inbox', async () => {
const recipient = await recipientF.deploy();
await recipient.deployTransaction.wait();
let { index, proof, root, message } = messageWithProof;
const { index, proof, root, message } = messageWithProof;
await inbox.setCheckpoint(root, 1);
await inbox.process(message, proof, index, '0x');
@ -117,7 +118,7 @@ describe('Inbox', async () => {
});
it('Rejects an already-processed message', async () => {
let { leaf, index, proof, root, message } = messageWithProof;
const { leaf, index, proof, root, message } = messageWithProof;
await inbox.setCheckpoint(root, 1);
// Set message status as MessageStatus.Processed
@ -130,7 +131,7 @@ describe('Inbox', async () => {
});
it('Rejects invalid message proof', async () => {
let { leaf, index, proof, root, message } = messageWithProof;
const { leaf, index, proof, root, message } = messageWithProof;
// Switch ordering of proof hashes
// NB: We copy 'path' here to avoid mutating the test cases for

@ -18,9 +18,9 @@ export type MysteryMathUpgrade = {
};
export class UpgradeTestHelpers {
a: number = 5;
b: number = 10;
stateVar: number = 17;
a = 5;
b = 10;
stateVar = 17;
async deployMysteryMathUpgradeSetup(
signer: SignerWithAddress,

@ -8,7 +8,7 @@ import { TestMerkle, TestMerkle__factory } from '../types';
const merkleTestCases = require('../../../vectors/merkle.json');
describe('Merkle', async () => {
for (let testCase of merkleTestCases) {
for (const testCase of merkleTestCases) {
const { testName, leaves, expectedRoot, proofs } = testCase;
describe(testName, async () => {
@ -21,7 +21,7 @@ describe('Merkle', async () => {
merkle = await merkleFactory.deploy();
//insert the leaves
for (let leaf of leaves) {
for (const leaf of leaves) {
const leafHash = ethers.utils.hashMessage(leaf);
await merkle.insert(leafHash);
}
@ -37,7 +37,7 @@ describe('Merkle', async () => {
});
it("can verify the leaves' proofs", async () => {
for (let proof of proofs) {
for (const proof of proofs) {
const { leaf, path, index } = proof;
const proofRoot = await merkle.branchRoot(

@ -152,8 +152,8 @@ describe('Outbox', async () => {
});
it('Correctly calculates destinationAndNonce', async () => {
for (let testCase of destinationNonceTestCases) {
let { destination, nonce, expectedDestinationAndNonce } = testCase;
for (const testCase of destinationNonceTestCases) {
const { destination, nonce, expectedDestinationAndNonce } = testCase;
const solidityDestinationAndNonce = await outbox.destinationAndNonce(
destination,
nonce,

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/no-floating-promises */
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { expect } from 'chai';
import { ethers } from 'hardhat';
@ -14,6 +15,7 @@ import { signCheckpoint } from './utils';
const OUTBOX_DOMAIN = 1234;
const QUORUM_THRESHOLD = 1;
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
const domainHashTestCases = require('../../../../vectors/domainHash.json');
describe('MultisigValidatorManager', async () => {
@ -257,7 +259,7 @@ describe('MultisigValidatorManager', async () => {
it('matches Rust-produced domain hashes', async () => {
// Compare Rust output in json file to solidity output (json file matches
// hash for local domain of 1000)
for (let testCase of domainHashTestCases) {
for (const testCase of domainHashTestCases) {
const { expectedDomainHash } = testCase;
// This public function on TestMultisigValidatorManager exposes
// the internal _domainHash on MultisigValidatorManager.

@ -3,14 +3,7 @@
"outDir": "./dist/",
"rootDir": "./types/"
},
"exclude": [
"./node_modules/",
"./dist/",
"./types/hardhat.d.ts"
],
"extends": "../../tsconfig.package.json",
"include": [
"./types/*.ts",
"./types/factories/*.ts"
]
"exclude": ["./node_modules/", "./dist/", "./types/hardhat.d.ts"],
"extends": "../../tsconfig.json",
"include": ["./types/*.ts", "./types/factories/*.ts"]
}

@ -0,0 +1,3 @@
{
"extends": "../tsconfig.json"
}

@ -0,0 +1,5 @@
{
"rules": {
"no-console": ["off"]
}
}

@ -172,7 +172,7 @@ export abstract class AbacusAppDeployer<Chain extends ChainName, C, A> {
});
}
static stringify(obj: Object) {
static stringify(obj: any) {
return JSON.stringify(obj, null, 2);
}
@ -182,7 +182,7 @@ export abstract class AbacusAppDeployer<Chain extends ChainName, C, A> {
fs.writeFileSync(filepath, contents);
}
static writeJson(filepath: string, obj: Object) {
static writeJson(filepath: string, obj: any) {
AbacusAppDeployer.write(filepath, AbacusAppDeployer.stringify(obj));
}
}

@ -4,7 +4,7 @@
"rootDir": "./"
},
"exclude": ["./node_modules/", "./dist/", "./tmp.ts"],
"extends": "../../tsconfig.package.json",
"extends": "../../tsconfig.json",
"include": [
"./*.ts",
"./config/**/*.ts",

@ -5,10 +5,10 @@ import {
} from '@abacus-network/core';
import {
AbacusCore,
chainMetadata,
DomainIdToChainName,
objMap,
TestChainNames,
chainMetadata,
objMap,
} from '@abacus-network/sdk';
import { types } from '@abacus-network/utils';
import { ethers } from 'ethers';
@ -80,7 +80,7 @@ export class TestCoreApp extends AbacusCore<TestChainNames> {
dispatch.args.message,
dispatch.args.leafIndex.toNumber(),
);
let destinationResponses = responses.get(destinationChain) || [];
const destinationResponses = responses.get(destinationChain) || [];
destinationResponses.push(response);
responses.set(destinationChain, destinationResponses);
}

@ -4,9 +4,6 @@
"rootDir": "./"
},
"exclude": ["./node_modules/", "./dist/", "./tmp.ts"],
"extends": "../../tsconfig.package.json",
"include": [
"./index.ts",
"./src/*.ts"
]
"extends": "../../tsconfig.json",
"include": ["./index.ts", "./src/*.ts"]
}

@ -0,0 +1,5 @@
{
"rules": {
"no-console": ["off"]
}
}

@ -12,7 +12,9 @@ async function main() {
try {
await key.fetch();
address = key.address;
} catch (e) {}
} catch (e) {
// Swallow error
}
return {
identifier: key.identifier,
address,

@ -92,9 +92,11 @@ export class AgentAwsKey extends AgentKey {
}
async createIfNotExists() {
let keyId = await this.getId();
const keyId = await this.getId();
// If it doesn't exist, create it
if (!keyId) {
// TODO should this be awaited? create is async
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.create();
// It can take a moment for the change to propagate
await sleep(1000);
@ -148,15 +150,15 @@ export class AgentAwsKey extends AgentKey {
return match?.TargetKeyId;
}
async create() {
this._create(false);
create() {
return this._create(false);
}
/**
* Creates the new key but doesn't actually rotate it
* @returns The address of the new key
*/
async update() {
update() {
return this._create(true);
}
@ -208,6 +210,8 @@ export class AgentAwsKey extends AgentKey {
await client.send(new DeleteAliasCommand({ AliasName: newAlias }));
// Address should have changed now
// TODO should this be awaited? fetch is async
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.fetch();
}

@ -114,6 +114,7 @@ export class AgentGCPKey extends AgentKey {
}
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
private async _create(rotate: boolean) {
const wallet = Wallet.createRandom();
const address = await wallet.getAddress();

@ -225,7 +225,7 @@ export async function getAgentEnvVars<Chain extends ChainName>(
function configEnvVars(
config: Record<string, any>,
role: string,
key_name_prefix: string = '',
key_name_prefix = '',
) {
let envVars: string[] = [];
for (const key of Object.keys(config)) {

@ -9,10 +9,7 @@ interface IamCondition {
expression: string;
}
export async function fetchGCPSecret(
secretName: string,
parseJson: boolean = true,
) {
export async function fetchGCPSecret(secretName: string, parseJson = true) {
const [output] = await execCmd(
`gcloud secrets versions access latest --secret ${secretName}`,
);

@ -136,7 +136,7 @@ export function log(isTest: boolean, str: string) {
}
}
export function warn(text: string, padded: boolean = false) {
export function warn(text: string, padded = false) {
if (padded) {
const padding = '*'.repeat(text.length + 8);
console.log(
@ -161,7 +161,7 @@ export function writeJSON(directory: string, filename: string, obj: any) {
// Returns a \ b
// Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#implementing_basic_set_operations
export function setDifference<T>(a: Set<T>, b: Set<T>) {
let diff = new Set(a);
const diff = new Set(a);
for (const element of b) {
diff.delete(element);
}

@ -4,7 +4,7 @@
"rootDir": "./"
},
"exclude": ["./node_modules/", "./dist/", "./tmp.ts"],
"extends": "../../tsconfig.package.json",
"extends": "../../tsconfig.json",
"include": [
"./*.ts",
"./config/**/*.ts",

@ -1,20 +0,0 @@
{
"env": {
"node": true
},
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"rules": {
"comma-dangle": ["error", "always-multiline"],
"semi": ["error", "always"],
"@typescript-eslint/explicit-module-boundary-types": ["error"],
"@typescript-eslint/no-non-null-assertion": ["error"],
"@typescript-eslint/no-explicit-any": ["error", { "ignoreRestArgs": true }]
}
}

@ -12,11 +12,8 @@
},
"devDependencies": {
"@types/node": "^16.9.1",
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"chai": "^4.3.6",
"dotenv": "^10.0.0",
"eslint": "^7.32.0",
"fs": "0.0.1-security",
"mocha": "^9.2.2",
"sinon": "^13.0.2"

@ -0,0 +1,5 @@
{
"rules": {
"@typescript-eslint/explicit-module-boundary-types": ["error"]
}
}

@ -38,7 +38,7 @@ export class AbacusApp<
return this.get(chain).addresses;
}
reconnect(chain: Chain, connection: Connection) {
reconnect(chain: Chain, connection: Connection): void {
this.get(chain).reconnect(connection);
}
}

@ -132,6 +132,7 @@ const _configs = {
export const addSignerToConnection =
<Chain extends ChainName>(signer: ethers.Signer) =>
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
(_chain: Chain, connection: IChainConnection) => ({
...connection,
signer,

@ -55,13 +55,13 @@ export abstract class AbacusContracts<
this.contracts = Object.fromEntries(contractEntries);
}
reconnect(connection: Connection) {
reconnect(connection: Connection): void {
Object.values(this.contracts).forEach((contract: Contract) =>
contract.connect(connection),
);
}
protected onlySigner(actual: types.Address, expected: types.Address) {
protected onlySigner(actual: types.Address, expected: types.Address): void {
if (actual !== expected) {
throw new Error(`Signer ${actual} must be ${expected} for this method`);
}

@ -1,3 +1,5 @@
import { Inbox, Outbox } from '@abacus-network/core';
import { AbacusApp } from '../app';
import { MultiProvider } from '../provider';
import { ChainMap, ChainName, Remotes } from '../types';
@ -33,7 +35,7 @@ export class AbacusCore<Chain extends ChainName = ChainName> extends AbacusApp<
static fromEnvironment<E extends CoreEnvironment>(
name: E,
multiProvider: MultiProvider<any>, // TODO: fix networks
) {
): AbacusCore<any> {
return new AbacusCore(environments[name], multiProvider);
}
@ -64,7 +66,7 @@ export class AbacusCore<Chain extends ChainName = ChainName> extends AbacusApp<
getMailboxPair<Local extends Chain>(
origin: Remotes<Chain, Local>,
destination: Local,
) {
): { outbox: Outbox; inbox: Inbox } {
const outbox = this.getContracts(origin).outbox.outbox;
const inbox = this.getContracts(destination).inboxes[origin].inbox;
return { outbox, inbox };

@ -111,7 +111,7 @@ export class CoreContracts<N extends ChainName = ChainName, L extends N = N>
};
}
reconnect(connection: Connection) {
reconnect(connection: Connection): void {
this.contracts.outbox.outbox.connect(connection);
this.contracts.outbox.validatorManager.connect(connection);
this.contracts.interchainGasPaymaster.connect(connection);
@ -123,12 +123,14 @@ export class CoreContracts<N extends ChainName = ChainName, L extends N = N>
});
}
getOutbox = () => this.contracts.outbox.outbox;
getOutbox = (): Outbox => this.contracts.outbox.outbox;
getOutboxValidatorManager = () => this.contracts.outbox.validatorManager;
getOutboxValidatorManager = (): OutboxValidatorManager =>
this.contracts.outbox.validatorManager;
getInbox = (chain: Remotes<N, L>) => this.contracts.inboxes[chain].inbox;
getInbox = (chain: Remotes<N, L>): Inbox =>
this.contracts.inboxes[chain].inbox;
getInboxValidatorManager = (chain: Remotes<N, L>) =>
getInboxValidatorManager = (chain: Remotes<N, L>): InboxValidatorManager =>
this.contracts.inboxes[chain].validatorManager;
}

@ -48,7 +48,9 @@ export const resolveId = (nameOrDomain: NameOrDomain): number =>
? ChainNameToDomainId[nameOrDomain]
: nameOrDomain;
export const resolveNetworks = (message: ParsedMessage) => {
export const resolveNetworks = (
message: ParsedMessage,
): { origin: ChainName; destination: ChainName } => {
return {
origin: resolveDomain(message.origin),
destination: resolveDomain(message.destination),

@ -173,7 +173,7 @@ export class InterchainGasCalculator<Chain extends ChainName> {
*/
async estimatePaymentForMessage<Destination extends Chain>(
message: ParsedMessage<Chain, Destination>,
) {
): Promise<BigNumber> {
const destinationGas = await this.estimateHandleGasForMessage(message);
return this.estimatePaymentForHandleGasAmount(
message.origin,
@ -261,7 +261,7 @@ export class InterchainGasCalculator<Chain extends ChainName> {
* @param chain The chain.
* @returns The number of decimals of `chain`'s native token.
*/
nativeTokenDecimals(chain: Chain) {
nativeTokenDecimals(chain: Chain): number {
return chainMetadata[chain].nativeTokenDecimals ?? DEFAULT_TOKEN_DECIMALS;
}

@ -8,6 +8,7 @@ export interface TokenPriceGetter {
// TODO implement in following PR
export class DefaultTokenPriceGetter implements TokenPriceGetter {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
getNativeTokenUsdPrice(_chain: NameOrDomain): Promise<FixedNumber> {
return Promise.resolve(FixedNumber.from('12.34'));
}

@ -15,10 +15,7 @@ export function bigToFixed(big: BigNumber): FixedNumber {
* @param ceil If true, the ceiling of fixed is used. Otherwise, the floor is used.
* @returns A BigNumber representation of a FixedNumber.
*/
export function fixedToBig(
fixed: FixedNumber,
ceil: boolean = false,
): BigNumber {
export function fixedToBig(fixed: FixedNumber, ceil = false): BigNumber {
const fixedAsInteger = ceil ? fixed.ceiling() : fixed.floor();
return BigNumber.from(fixedAsInteger.toFormat('fixed256x0').toString());
}
@ -33,7 +30,7 @@ export function fixedToBig(
export function mulBigAndFixed(
big: BigNumber,
fixed: FixedNumber,
ceil: boolean = false,
ceil = false,
): BigNumber {
// Converts big to a FixedNumber, multiplies it by fixed, and converts the product back
// to a BigNumber.

@ -23,9 +23,10 @@ export class ChainConnection {
this.confirmations = dc.confirmations ?? 0;
}
getConnection = () => this.signer ?? this.provider;
getConnection = (): ethers.providers.Provider | ethers.Signer =>
this.signer ?? this.provider;
getAddress = () => this.signer?.getAddress();
getAddress = (): Promise<string> | undefined => this.signer?.getAddress();
}
export class MultiProvider<
@ -39,7 +40,7 @@ export class MultiProvider<
),
);
}
getChainConnection(chain: Chain) {
getChainConnection(chain: Chain): ChainMap<Chain, ChainConnection>[Chain] {
return this.get(chain);
}
// This doesn't work on hardhat providers so we skip for now

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { BytesLike, arrayify, hexlify } from '@ethersproject/bytes';
import { ethers } from 'ethers';
@ -69,7 +70,7 @@ export class MultiGeneric<Chain extends ChainName, Value> {
}
map<Output>(fn: (n: Chain, dc: Value) => Output) {
let entries: [Chain, Output][] = [];
const entries: [Chain, Output][] = [];
const chains = this.chains();
for (const chain of chains) {
entries.push([chain, fn(chain, this.chainMap[chain])]);

@ -1,12 +1,9 @@
{
"extends": "../../tsconfig.package.json",
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./dist/",
"rootDir": "./src/"
},
"exclude": ["./node_modules/", "./dist/", "./test/"],
"include": [
"./src/*.ts",
"./src/**/*.ts"
]
"include": ["./src/*.ts", "./src/**/*.ts"]
}

@ -0,0 +1,3 @@
{
"extends": "../tsconfig.json"
}

@ -84,7 +84,7 @@ export function destinationAndNonce(
.add(ethers.BigNumber.from(sequence));
}
export function domainHash(domain: Number): string {
export function domainHash(domain: number): string {
return ethers.utils.solidityKeccak256(
['uint32', 'string'],
[domain, 'ABACUS'],

@ -37,9 +37,9 @@ export class Validator {
}
async signCheckpoint(root: types.HexString, index: number) {
let message = this.message(root, index);
let msgHash = ethers.utils.arrayify(ethers.utils.keccak256(message));
let signature = await this.signer.signMessage(msgHash);
const message = this.message(root, index);
const msgHash = ethers.utils.arrayify(ethers.utils.keccak256(message));
const signature = await this.signer.signMessage(msgHash);
return {
origin: this.localDomain,
root,

@ -4,9 +4,6 @@
"rootDir": "./"
},
"exclude": ["./node_modules/", "./dist/", "./tmp.ts"],
"extends": "../../tsconfig.package.json",
"include": [
"./index.ts",
"./src/*.ts"
]
"extends": "../../tsconfig.json",
"include": ["./index.ts", "./src/*.ts"]
}

@ -50,7 +50,6 @@ __metadata:
solhint-plugin-prettier: ^0.0.5
solidity-coverage: ^0.7.14
ts-generator: ^0.1.1
ts-node: ^10.1.0
typechain: ^5.0.0
languageName: unknown
linkType: soft
@ -127,14 +126,16 @@ __metadata:
resolution: "@abacus-network/monorepo@workspace:."
dependencies:
"@trivago/prettier-plugin-sort-imports": ^3.2.0
eslint: ^7.32.0
eslint-config-prettier: ^8.3.0
"@typescript-eslint/eslint-plugin": ^5.27.0
"@typescript-eslint/parser": ^5.27.0
eslint: ^8.16.0
eslint-config-prettier: ^8.5.0
husky: ^8.0.0
lint-staged: ^12.4.2
lint-staged: ^12.4.3
prettier: ^2.4.1
prettier-plugin-solidity: ^1.0.0-beta.5
ts-node: ^10.1.0
typescript: ^4.3.5
ts-node: ^10.8.0
typescript: ^4.7.2
languageName: unknown
linkType: soft
@ -147,12 +148,9 @@ __metadata:
"@ethersproject/bignumber": ^5.5.0
"@ethersproject/bytes": ^5.5.0
"@types/node": ^16.9.1
"@typescript-eslint/eslint-plugin": ^4.33.0
"@typescript-eslint/parser": ^4.33.0
celo-ethers-provider: ^0.0.0
chai: ^4.3.6
dotenv: ^10.0.0
eslint: ^7.32.0
ethers: ^5.4.7
fs: 0.0.1-security
mocha: ^9.2.2
@ -1926,15 +1924,6 @@ __metadata:
languageName: node
linkType: hard
"@babel/code-frame@npm:7.12.11":
version: 7.12.11
resolution: "@babel/code-frame@npm:7.12.11"
dependencies:
"@babel/highlight": ^7.10.4
checksum: 3963eff3ebfb0e091c7e6f99596ef4b258683e4ba8a134e4e95f77afe85be5c931e184fff6435fb4885d12eba04a5e25532f7fbc292ca13b48e7da943474e2f3
languageName: node
linkType: hard
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7":
version: 7.16.7
resolution: "@babel/code-frame@npm:7.16.7"
@ -2107,7 +2096,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.16.7":
"@babel/highlight@npm:^7.16.7":
version: 7.17.9
resolution: "@babel/highlight@npm:7.17.9"
dependencies:
@ -2203,19 +2192,12 @@ __metadata:
languageName: node
linkType: hard
"@cspotcode/source-map-consumer@npm:0.8.0":
version: 0.8.0
resolution: "@cspotcode/source-map-consumer@npm:0.8.0"
checksum: c0c16ca3d2f58898f1bd74c4f41a189dbcc202e642e60e489cbcc2e52419c4e89bdead02c886a12fb13ea37798ede9e562b2321df997ebc210ae9bd881561b4e
languageName: node
linkType: hard
"@cspotcode/source-map-support@npm:0.7.0":
version: 0.7.0
resolution: "@cspotcode/source-map-support@npm:0.7.0"
"@cspotcode/source-map-support@npm:^0.8.0":
version: 0.8.1
resolution: "@cspotcode/source-map-support@npm:0.8.1"
dependencies:
"@cspotcode/source-map-consumer": 0.8.0
checksum: 9faddda7757cd778b5fd6812137b2cc265810043680d6399acc20441668fafcdc874053be9dccd0d9110087287bfad27eb3bf342f72bceca9aa9059f5d0c4be8
"@jridgewell/trace-mapping": 0.3.9
checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa
languageName: node
linkType: hard
@ -2239,20 +2221,20 @@ __metadata:
languageName: node
linkType: hard
"@eslint/eslintrc@npm:^0.4.3":
version: 0.4.3
resolution: "@eslint/eslintrc@npm:0.4.3"
"@eslint/eslintrc@npm:^1.3.0":
version: 1.3.0
resolution: "@eslint/eslintrc@npm:1.3.0"
dependencies:
ajv: ^6.12.4
debug: ^4.1.1
espree: ^7.3.0
globals: ^13.9.0
ignore: ^4.0.6
debug: ^4.3.2
espree: ^9.3.2
globals: ^13.15.0
ignore: ^5.2.0
import-fresh: ^3.2.1
js-yaml: ^3.13.1
minimatch: ^3.0.4
js-yaml: ^4.1.0
minimatch: ^3.1.2
strip-json-comments: ^3.1.1
checksum: 03a7704150b868c318aab6a94d87a33d30dc2ec579d27374575014f06237ba1370ae11178db772f985ef680d469dc237e7b16a1c5d8edaaeb8c3733e7a95a6d3
checksum: a1e734ad31a8b5328dce9f479f185fd4fc83dd7f06c538e1fa457fd8226b89602a55cc6458cd52b29573b01cdfaf42331be8cfc1fec732570086b591f4ed6515
languageName: node
linkType: hard
@ -2852,18 +2834,18 @@ __metadata:
languageName: node
linkType: hard
"@humanwhocodes/config-array@npm:^0.5.0":
version: 0.5.0
resolution: "@humanwhocodes/config-array@npm:0.5.0"
"@humanwhocodes/config-array@npm:^0.9.2":
version: 0.9.5
resolution: "@humanwhocodes/config-array@npm:0.9.5"
dependencies:
"@humanwhocodes/object-schema": ^1.2.0
"@humanwhocodes/object-schema": ^1.2.1
debug: ^4.1.1
minimatch: ^3.0.4
checksum: 44ee6a9f05d93dd9d5935a006b17572328ba9caff8002442f601736cbda79c580cc0f5a49ce9eb88fbacc5c3a6b62098357c2e95326cd17bb9f1a6c61d6e95e7
checksum: 8ba6281bc0590f6c6eadeefc14244b5a3e3f5903445aadd1a32099ed80e753037674026ce1b3c945ab93561bea5eb29e3c5bff67060e230c295595ba517a3492
languageName: node
linkType: hard
"@humanwhocodes/object-schema@npm:^1.2.0":
"@humanwhocodes/object-schema@npm:^1.2.1":
version: 1.2.1
resolution: "@humanwhocodes/object-schema@npm:1.2.1"
checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1
@ -2880,6 +2862,13 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/resolve-uri@npm:^3.0.3":
version: 3.0.7
resolution: "@jridgewell/resolve-uri@npm:3.0.7"
checksum: 94f454f4cef8f0acaad85745fd3ca6cd0d62ef731cf9f952ecb89b8b2ce5e20998cd52be31311cedc5fa5b28b1708a15f3ad9df0fe1447ee4f42959b036c4b5b
languageName: node
linkType: hard
"@jridgewell/set-array@npm:^1.0.0":
version: 1.1.0
resolution: "@jridgewell/set-array@npm:1.1.0"
@ -2894,6 +2883,16 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/trace-mapping@npm:0.3.9":
version: 0.3.9
resolution: "@jridgewell/trace-mapping@npm:0.3.9"
dependencies:
"@jridgewell/resolve-uri": ^3.0.3
"@jridgewell/sourcemap-codec": ^1.4.10
checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef
languageName: node
linkType: hard
"@metamask/eth-sig-util@npm:^4.0.0":
version: 4.0.1
resolution: "@metamask/eth-sig-util@npm:4.0.1"
@ -3443,7 +3442,7 @@ __metadata:
languageName: node
linkType: hard
"@types/json-schema@npm:^7.0.7":
"@types/json-schema@npm:^7.0.9":
version: 7.0.11
resolution: "@types/json-schema@npm:7.0.11"
checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d
@ -3668,103 +3667,120 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/eslint-plugin@npm:4.33.0"
"@typescript-eslint/eslint-plugin@npm:^5.27.0":
version: 5.27.0
resolution: "@typescript-eslint/eslint-plugin@npm:5.27.0"
dependencies:
"@typescript-eslint/experimental-utils": 4.33.0
"@typescript-eslint/scope-manager": 4.33.0
debug: ^4.3.1
"@typescript-eslint/scope-manager": 5.27.0
"@typescript-eslint/type-utils": 5.27.0
"@typescript-eslint/utils": 5.27.0
debug: ^4.3.4
functional-red-black-tree: ^1.0.1
ignore: ^5.1.8
regexpp: ^3.1.0
semver: ^7.3.5
ignore: ^5.2.0
regexpp: ^3.2.0
semver: ^7.3.7
tsutils: ^3.21.0
peerDependencies:
"@typescript-eslint/parser": ^4.0.0
eslint: ^5.0.0 || ^6.0.0 || ^7.0.0
"@typescript-eslint/parser": ^5.0.0
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: d74855d0a5ffe0b2f362ec02fcd9301d39a53fb4155b9bd0cb15a0a31d065143129ebf98df9d86af4b6f74de1d423a4c0d8c0095520844068117453afda5bc4f
checksum: af7970f90c511641c332b7abecc53523fbbcb19e59ec52df9679f02047ddd5fd5e9ce3ca9359b17674ac7e20e380995861482fb6e60049fe8facd766c2bd85fe
languageName: node
linkType: hard
"@typescript-eslint/experimental-utils@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/experimental-utils@npm:4.33.0"
"@typescript-eslint/parser@npm:^5.27.0":
version: 5.27.0
resolution: "@typescript-eslint/parser@npm:5.27.0"
dependencies:
"@types/json-schema": ^7.0.7
"@typescript-eslint/scope-manager": 4.33.0
"@typescript-eslint/types": 4.33.0
"@typescript-eslint/typescript-estree": 4.33.0
eslint-scope: ^5.1.1
eslint-utils: ^3.0.0
"@typescript-eslint/scope-manager": 5.27.0
"@typescript-eslint/types": 5.27.0
"@typescript-eslint/typescript-estree": 5.27.0
debug: ^4.3.4
peerDependencies:
eslint: "*"
checksum: f859800ada0884f92db6856f24efcb1d073ac9883ddc2b1aa9339f392215487895bed8447ebce3741e8141bb32e545244abef62b73193ba9a8a0527c523aabae
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 40ccdc481f871c296ee419e886ffd6f89ec23f6b10dbb2847c7e89bfd2234c6be23c49ab92d2965e16cd4c3cf378010e3dcd72d34f82b1e2ca8b5c812133fb00
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/parser@npm:4.33.0"
"@typescript-eslint/scope-manager@npm:5.27.0":
version: 5.27.0
resolution: "@typescript-eslint/scope-manager@npm:5.27.0"
dependencies:
"@typescript-eslint/scope-manager": 4.33.0
"@typescript-eslint/types": 4.33.0
"@typescript-eslint/typescript-estree": 4.33.0
debug: ^4.3.1
peerDependencies:
eslint: ^5.0.0 || ^6.0.0 || ^7.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 102457eae1acd516211098fea081c8a2ed728522bbda7f5a557b6ef23d88970514f9a0f6285d53fca134d3d4d7d17822b5d5e12438d5918df4d1f89cc9e67d57
"@typescript-eslint/types": 5.27.0
"@typescript-eslint/visitor-keys": 5.27.0
checksum: 84eb2d6241a6644c622b473c060bb7a227c2a82e8af8ddcf654fb63716e1b3c6fe1b5d747d032d85594c0ad147d95aabc2b217d4af574b55eab93910e0c292ce
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/scope-manager@npm:4.33.0"
"@typescript-eslint/type-utils@npm:5.27.0":
version: 5.27.0
resolution: "@typescript-eslint/type-utils@npm:5.27.0"
dependencies:
"@typescript-eslint/types": 4.33.0
"@typescript-eslint/visitor-keys": 4.33.0
checksum: 9a25fb7ba7c725ea7227a24d315b0f6aacbad002e2549a049edf723c1d3615c22f5c301f0d7d615b377f2cdf2f3519d97e79af0c459de6ef8d2aaf0906dff13e
"@typescript-eslint/utils": 5.27.0
debug: ^4.3.4
tsutils: ^3.21.0
peerDependencies:
eslint: "*"
peerDependenciesMeta:
typescript:
optional: true
checksum: 21ef57ecc0dfa085e7ce8f7714d143993f592004086e37582cb6ab5924cb3358267b607e0701ce43737e01f46fb33d66e3f3428fbb7be6e64971d4c26f73c265
languageName: node
linkType: hard
"@typescript-eslint/types@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/types@npm:4.33.0"
checksum: 3baae1ca35872421b4eb60f5d3f3f32dc1d513f2ae0a67dee28c7d159fd7a43ed0d11a8a5a0f0c2d38507ffa036fc7c511cb0f18a5e8ac524b3ebde77390ec53
"@typescript-eslint/types@npm:5.27.0":
version: 5.27.0
resolution: "@typescript-eslint/types@npm:5.27.0"
checksum: d19802bb7bc8202885a47118e196ad9a26b686f00da5aa71a84974c1e838c5e3a36f54116605c46ffe909ccf856a49623f2a095fd05243b4fe4fecfe5cecb89c
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/typescript-estree@npm:4.33.0"
"@typescript-eslint/typescript-estree@npm:5.27.0":
version: 5.27.0
resolution: "@typescript-eslint/typescript-estree@npm:5.27.0"
dependencies:
"@typescript-eslint/types": 4.33.0
"@typescript-eslint/visitor-keys": 4.33.0
debug: ^4.3.1
globby: ^11.0.3
is-glob: ^4.0.1
semver: ^7.3.5
"@typescript-eslint/types": 5.27.0
"@typescript-eslint/visitor-keys": 5.27.0
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
semver: ^7.3.7
tsutils: ^3.21.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 2566984390c76bd95f43240057215c068c69769e406e27aba41e9f21fd300074d6772e4983fa58fe61e80eb5550af1548d2e31e80550d92ba1d051bb00fe6f5c
checksum: a0f14c332cd293a100399172c9ae498c230c8c205ab74565ea2de08a0bd860af829a9c4dde1888df89667fa0bc29048bc33993eb9445d2689fa2dfcec55c4915
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/visitor-keys@npm:4.33.0"
"@typescript-eslint/utils@npm:5.27.0":
version: 5.27.0
resolution: "@typescript-eslint/utils@npm:5.27.0"
dependencies:
"@typescript-eslint/types": 4.33.0
eslint-visitor-keys: ^2.0.0
checksum: 59953e474ad4610c1aa23b2b1a964445e2c6201521da6367752f37939d854352bbfced5c04ea539274065e012b1337ba3ffa49c2647a240a4e87155378ba9873
"@types/json-schema": ^7.0.9
"@typescript-eslint/scope-manager": 5.27.0
"@typescript-eslint/types": 5.27.0
"@typescript-eslint/typescript-estree": 5.27.0
eslint-scope: ^5.1.1
eslint-utils: ^3.0.0
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
checksum: ed823528c3b7f8c71a44ea0481896c46178e361e89003c63736de6ece45cb771defea13b505f0adb517c59f55a95d0b5f1bb990f7a24d3a2597aa045bba0a7bf
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:5.27.0":
version: 5.27.0
resolution: "@typescript-eslint/visitor-keys@npm:5.27.0"
dependencies:
"@typescript-eslint/types": 5.27.0
eslint-visitor-keys: ^3.3.0
checksum: 7781f35e25a09d0986b4ba97c707102394cf94738a92d68eca6382b00ffba1b0fac3e937ca4ee6266295dd40ec837a61889fd715f594549f2c3d837594999c29
languageName: node
linkType: hard
@ -3877,7 +3893,7 @@ __metadata:
languageName: node
linkType: hard
"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.1":
"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.2":
version: 5.3.2
resolution: "acorn-jsx@npm:5.3.2"
peerDependencies:
@ -3902,16 +3918,7 @@ __metadata:
languageName: node
linkType: hard
"acorn@npm:^7.4.0":
version: 7.4.1
resolution: "acorn@npm:7.4.1"
bin:
acorn: bin/acorn
checksum: 1860f23c2107c910c6177b7b7be71be350db9e1080d814493fae143ae37605189504152d1ba8743ba3178d0b37269ce1ffc42b101547fdc1827078f82671e407
languageName: node
linkType: hard
"acorn@npm:^8.4.1":
"acorn@npm:^8.4.1, acorn@npm:^8.7.1":
version: 8.7.1
resolution: "acorn@npm:8.7.1"
bin:
@ -3990,18 +3997,6 @@ __metadata:
languageName: node
linkType: hard
"ajv@npm:^8.0.1":
version: 8.11.0
resolution: "ajv@npm:8.11.0"
dependencies:
fast-deep-equal: ^3.1.1
json-schema-traverse: ^1.0.0
require-from-string: ^2.0.2
uri-js: ^4.2.2
checksum: 5e0ff226806763be73e93dd7805b634f6f5921e3e90ca04acdf8db81eed9d8d3f0d4c5f1213047f45ebbf8047ffe0c840fa1ef2ec42c3a644899f69aa72b5bef
languageName: node
linkType: hard
"amdefine@npm:>=0.0.4":
version: 1.0.1
resolution: "amdefine@npm:1.0.1"
@ -6012,10 +6007,10 @@ __metadata:
languageName: node
linkType: hard
"commander@npm:^8.3.0":
version: 8.3.0
resolution: "commander@npm:8.3.0"
checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0
"commander@npm:^9.3.0":
version: 9.3.0
resolution: "commander@npm:9.3.0"
checksum: d421ce66fee25792a1470c69aa8d1b86434bf873a96483aa92c8267f81a6f20c6f7c426f5e82f88ac50a8ec4855d3f2787aebcdef8aa559e1080a2337a95a217
languageName: node
linkType: hard
@ -6330,7 +6325,7 @@ __metadata:
languageName: node
linkType: hard
"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.3, debug@npm:^4.3.4":
"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
version: 4.3.4
resolution: "debug@npm:4.3.4"
dependencies:
@ -6784,7 +6779,7 @@ __metadata:
languageName: node
linkType: hard
"enquirer@npm:^2.3.0, enquirer@npm:^2.3.5":
"enquirer@npm:^2.3.0":
version: 2.3.6
resolution: "enquirer@npm:2.3.6"
dependencies:
@ -6952,7 +6947,7 @@ __metadata:
languageName: node
linkType: hard
"eslint-config-prettier@npm:^8.3.0":
"eslint-config-prettier@npm:^8.5.0":
version: 8.5.0
resolution: "eslint-config-prettier@npm:8.5.0"
peerDependencies:
@ -6983,21 +6978,22 @@ __metadata:
languageName: node
linkType: hard
"eslint-utils@npm:^1.3.1":
version: 1.4.3
resolution: "eslint-utils@npm:1.4.3"
"eslint-scope@npm:^7.1.1":
version: 7.1.1
resolution: "eslint-scope@npm:7.1.1"
dependencies:
eslint-visitor-keys: ^1.1.0
checksum: a20630e686034107138272f245c460f6d77705d1f4bb0628c1a1faf59fc800f441188916b3ec3b957394dc405aa200a3017dfa2b0fff0976e307a4e645a18d1e
esrecurse: ^4.3.0
estraverse: ^5.2.0
checksum: 9f6e974ab2db641ca8ab13508c405b7b859e72afe9f254e8131ff154d2f40c99ad4545ce326fd9fde3212ff29707102562a4834f1c48617b35d98c71a97fbf3e
languageName: node
linkType: hard
"eslint-utils@npm:^2.1.0":
version: 2.1.0
resolution: "eslint-utils@npm:2.1.0"
"eslint-utils@npm:^1.3.1":
version: 1.4.3
resolution: "eslint-utils@npm:1.4.3"
dependencies:
eslint-visitor-keys: ^1.1.0
checksum: 27500938f348da42100d9e6ad03ae29b3de19ba757ae1a7f4a087bdcf83ac60949bbb54286492ca61fac1f5f3ac8692dd21537ce6214240bf95ad0122f24d71d
checksum: a20630e686034107138272f245c460f6d77705d1f4bb0628c1a1faf59fc800f441188916b3ec3b957394dc405aa200a3017dfa2b0fff0976e307a4e645a18d1e
languageName: node
linkType: hard
@ -7012,7 +7008,7 @@ __metadata:
languageName: node
linkType: hard
"eslint-visitor-keys@npm:^1.0.0, eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0":
"eslint-visitor-keys@npm:^1.0.0, eslint-visitor-keys@npm:^1.1.0":
version: 1.3.0
resolution: "eslint-visitor-keys@npm:1.3.0"
checksum: 37a19b712f42f4c9027e8ba98c2b06031c17e0c0a4c696cd429bd9ee04eb43889c446f2cd545e1ff51bef9593fcec94ecd2c2ef89129fcbbf3adadbef520376a
@ -7026,6 +7022,13 @@ __metadata:
languageName: node
linkType: hard
"eslint-visitor-keys@npm:^3.3.0":
version: 3.3.0
resolution: "eslint-visitor-keys@npm:3.3.0"
checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808
languageName: node
linkType: hard
"eslint@npm:^5.6.0":
version: 5.16.0
resolution: "eslint@npm:5.16.0"
@ -7072,53 +7075,48 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:^7.32.0":
version: 7.32.0
resolution: "eslint@npm:7.32.0"
"eslint@npm:^8.16.0":
version: 8.16.0
resolution: "eslint@npm:8.16.0"
dependencies:
"@babel/code-frame": 7.12.11
"@eslint/eslintrc": ^0.4.3
"@humanwhocodes/config-array": ^0.5.0
"@eslint/eslintrc": ^1.3.0
"@humanwhocodes/config-array": ^0.9.2
ajv: ^6.10.0
chalk: ^4.0.0
cross-spawn: ^7.0.2
debug: ^4.0.1
debug: ^4.3.2
doctrine: ^3.0.0
enquirer: ^2.3.5
escape-string-regexp: ^4.0.0
eslint-scope: ^5.1.1
eslint-utils: ^2.1.0
eslint-visitor-keys: ^2.0.0
espree: ^7.3.1
eslint-scope: ^7.1.1
eslint-utils: ^3.0.0
eslint-visitor-keys: ^3.3.0
espree: ^9.3.2
esquery: ^1.4.0
esutils: ^2.0.2
fast-deep-equal: ^3.1.3
file-entry-cache: ^6.0.1
functional-red-black-tree: ^1.0.1
glob-parent: ^5.1.2
globals: ^13.6.0
ignore: ^4.0.6
glob-parent: ^6.0.1
globals: ^13.15.0
ignore: ^5.2.0
import-fresh: ^3.0.0
imurmurhash: ^0.1.4
is-glob: ^4.0.0
js-yaml: ^3.13.1
js-yaml: ^4.1.0
json-stable-stringify-without-jsonify: ^1.0.1
levn: ^0.4.1
lodash.merge: ^4.6.2
minimatch: ^3.0.4
minimatch: ^3.1.2
natural-compare: ^1.4.0
optionator: ^0.9.1
progress: ^2.0.0
regexpp: ^3.1.0
semver: ^7.2.1
strip-ansi: ^6.0.0
regexpp: ^3.2.0
strip-ansi: ^6.0.1
strip-json-comments: ^3.1.0
table: ^6.0.9
text-table: ^0.2.0
v8-compile-cache: ^2.0.3
bin:
eslint: bin/eslint.js
checksum: cc85af9985a3a11085c011f3d27abe8111006d34cc274291b3c4d7bea51a4e2ff6135780249becd919ba7f6d6d1ecc38a6b73dacb6a7be08d38453b344dc8d37
checksum: 654a0200b49dc07280673fee13cdfb04326466790e031dfa9660b69fba3b1cf766a51504328f9de56bd18e6b5eb7578985cf29dc7f016c5ec851220ff9db95eb
languageName: node
linkType: hard
@ -7133,14 +7131,14 @@ __metadata:
languageName: node
linkType: hard
"espree@npm:^7.3.0, espree@npm:^7.3.1":
version: 7.3.1
resolution: "espree@npm:7.3.1"
"espree@npm:^9.3.2":
version: 9.3.2
resolution: "espree@npm:9.3.2"
dependencies:
acorn: ^7.4.0
acorn-jsx: ^5.3.1
eslint-visitor-keys: ^1.3.0
checksum: aa9b50dcce883449af2e23bc2b8d9abb77118f96f4cb313935d6b220f77137eaef7724a83c3f6243b96bc0e4ab14766198e60818caad99f9519ae5a336a39b45
acorn: ^8.7.1
acorn-jsx: ^5.3.2
eslint-visitor-keys: ^3.3.0
checksum: 9a790d6779847051e87f70d720a0f6981899a722419e80c92ab6dee01e1ab83b8ce52d11b4dc96c2c490182efb5a4c138b8b0d569205bfe1cd4629e658e58c30
languageName: node
linkType: hard
@ -8683,6 +8681,15 @@ __metadata:
languageName: node
linkType: hard
"glob-parent@npm:^6.0.1":
version: 6.0.2
resolution: "glob-parent@npm:6.0.2"
dependencies:
is-glob: ^4.0.3
checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8
languageName: node
linkType: hard
"glob@npm:7.1.3":
version: 7.1.3
resolution: "glob@npm:7.1.3"
@ -8775,12 +8782,12 @@ __metadata:
languageName: node
linkType: hard
"globals@npm:^13.6.0, globals@npm:^13.9.0":
version: 13.13.0
resolution: "globals@npm:13.13.0"
"globals@npm:^13.15.0":
version: 13.15.0
resolution: "globals@npm:13.15.0"
dependencies:
type-fest: ^0.20.2
checksum: c55ea8fd3afecb72567bac41605577e19e68476993dfb0ca4c49b86075af5f0ae3f0f5502525f69010f7c5ea5db6a1c540a80a4f80ebdfb2f686d87b0f05d7e9
checksum: 383ade0873b2ab29ce6d143466c203ed960491575bc97406395e5c8434026fb02472ab2dfff5bc16689b8460269b18fda1047975295cd0183904385c51258bae
languageName: node
linkType: hard
@ -8807,7 +8814,7 @@ __metadata:
languageName: node
linkType: hard
"globby@npm:^11.0.3":
"globby@npm:^11.1.0":
version: 11.1.0
resolution: "globby@npm:11.1.0"
dependencies:
@ -9336,7 +9343,7 @@ __metadata:
languageName: node
linkType: hard
"ignore@npm:^5.1.1, ignore@npm:^5.1.8, ignore@npm:^5.2.0":
"ignore@npm:^5.1.1, ignore@npm:^5.2.0":
version: 5.2.0
resolution: "ignore@npm:5.2.0"
checksum: 6b1f926792d614f64c6c83da3a1f9c83f6196c2839aa41e1e32dd7b8d174cef2e329d75caabb62cb61ce9dc432f75e67d07d122a037312db7caa73166a1bdb77
@ -9759,7 +9766,7 @@ __metadata:
languageName: node
linkType: hard
"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:~4.0.1":
"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
version: 4.0.3
resolution: "is-glob@npm:4.0.3"
dependencies:
@ -10081,7 +10088,7 @@ __metadata:
languageName: node
linkType: hard
"js-yaml@npm:4.1.0":
"js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0":
version: 4.1.0
resolution: "js-yaml@npm:4.1.0"
dependencies:
@ -10177,13 +10184,6 @@ __metadata:
languageName: node
linkType: hard
"json-schema-traverse@npm:^1.0.0":
version: 1.0.0
resolution: "json-schema-traverse@npm:1.0.0"
checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad
languageName: node
linkType: hard
"json-schema@npm:0.4.0":
version: 0.4.0
resolution: "json-schema@npm:0.4.0"
@ -10659,38 +10659,38 @@ __metadata:
languageName: node
linkType: hard
"lilconfig@npm:2.0.4":
version: 2.0.4
resolution: "lilconfig@npm:2.0.4"
checksum: 02ae530aa49218d782eb79e92c600ea5220828987f85aa3403fa512cadc7efe38c0ac7d0cd2edf600ad3fae1f6c1752f5b4bb78c0d9950435b044d53d507c9e1
"lilconfig@npm:2.0.5":
version: 2.0.5
resolution: "lilconfig@npm:2.0.5"
checksum: f7bb9e42656f06930ad04e583026f087508ae408d3526b8b54895e934eb2a966b7aafae569656f2c79a29fe6d779b3ec44ba577e80814734c8655d6f71cdf2d1
languageName: node
linkType: hard
"lint-staged@npm:^12.4.2":
version: 12.4.2
resolution: "lint-staged@npm:12.4.2"
"lint-staged@npm:^12.4.3":
version: 12.4.3
resolution: "lint-staged@npm:12.4.3"
dependencies:
cli-truncate: ^3.1.0
colorette: ^2.0.16
commander: ^8.3.0
debug: ^4.3.3
commander: ^9.3.0
debug: ^4.3.4
execa: ^5.1.1
lilconfig: 2.0.4
listr2: ^4.0.1
micromatch: ^4.0.4
lilconfig: 2.0.5
listr2: ^4.0.5
micromatch: ^4.0.5
normalize-path: ^3.0.0
object-inspect: ^1.12.0
object-inspect: ^1.12.2
pidtree: ^0.5.0
string-argv: ^0.3.1
supports-color: ^9.2.1
supports-color: ^9.2.2
yaml: ^1.10.2
bin:
lint-staged: bin/lint-staged.js
checksum: cd2c1d5e79ad6cdcfc3f56dad1c7b72fbb6fb566dfeefa83643717236adc8b92f5a9b8356d545a9377f656107aad159b59cec9fd929f605b41408b8937443a9d
checksum: db5dfd14e9e2bf68ec98752021ed1df9572561f3c2adbe52a775d6866e2e6eacb9c50d176c5cb773ebf01fb497b3a644e8ce80154e7fa9546ada23148cac8979
languageName: node
linkType: hard
"listr2@npm:^4.0.1":
"listr2@npm:^4.0.5":
version: 4.0.5
resolution: "listr2@npm:4.0.5"
dependencies:
@ -10774,13 +10774,6 @@ __metadata:
languageName: node
linkType: hard
"lodash.truncate@npm:^4.4.2":
version: 4.4.2
resolution: "lodash.truncate@npm:4.4.2"
checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5
languageName: node
linkType: hard
"lodash@npm:4.17.20":
version: 4.17.20
resolution: "lodash@npm:4.17.20"
@ -11151,7 +11144,7 @@ __metadata:
languageName: node
linkType: hard
"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5":
version: 4.0.5
resolution: "micromatch@npm:4.0.5"
dependencies:
@ -11242,7 +11235,7 @@ __metadata:
languageName: node
linkType: hard
"minimatch@npm:2 || 3, minimatch@npm:^3.0.4":
"minimatch@npm:2 || 3, minimatch@npm:^3.0.4, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
dependencies:
@ -11893,6 +11886,13 @@ __metadata:
languageName: node
linkType: hard
"object-inspect@npm:^1.12.2":
version: 1.12.2
resolution: "object-inspect@npm:1.12.2"
checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2
languageName: node
linkType: hard
"object-is@npm:^1.0.1":
version: 1.1.5
resolution: "object-is@npm:1.1.5"
@ -13025,7 +13025,7 @@ __metadata:
languageName: node
linkType: hard
"regexpp@npm:^3.1.0":
"regexpp@npm:^3.2.0":
version: 3.2.0
resolution: "regexpp@npm:3.2.0"
checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8
@ -13168,7 +13168,7 @@ __metadata:
languageName: node
linkType: hard
"require-from-string@npm:^2.0.0, require-from-string@npm:^2.0.2":
"require-from-string@npm:^2.0.0":
version: 2.0.2
resolution: "require-from-string@npm:2.0.2"
checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b
@ -13566,7 +13566,7 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5":
"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7":
version: 7.3.7
resolution: "semver@npm:7.3.7"
dependencies:
@ -14515,7 +14515,7 @@ __metadata:
languageName: node
linkType: hard
"supports-color@npm:^9.2.1":
"supports-color@npm:^9.2.2":
version: 9.2.2
resolution: "supports-color@npm:9.2.2"
checksum: 976d84877402fc38c1d43b1fde20b0a8dc0283273f21cfebe4ff7507d27543cdfbeec7db108a96b82d694465f06d64e8577562b05d0520b41710088e0a33cc50
@ -14580,19 +14580,6 @@ __metadata:
languageName: node
linkType: hard
"table@npm:^6.0.9":
version: 6.8.0
resolution: "table@npm:6.8.0"
dependencies:
ajv: ^8.0.1
lodash.truncate: ^4.4.2
slice-ansi: ^4.0.0
string-width: ^4.2.3
strip-ansi: ^6.0.1
checksum: 5b07fe462ee03d2e1fac02cbb578efd2e0b55ac07e3d3db2e950aa9570ade5a4a2b8d3c15e9f25c89e4e50b646bc4269934601ee1eef4ca7968ad31960977690
languageName: node
linkType: hard
"tape@npm:^4.6.3":
version: 4.15.1
resolution: "tape@npm:4.15.1"
@ -14875,11 +14862,11 @@ __metadata:
languageName: node
linkType: hard
"ts-node@npm:^10.1.0":
version: 10.7.0
resolution: "ts-node@npm:10.7.0"
"ts-node@npm:^10.8.0":
version: 10.8.0
resolution: "ts-node@npm:10.8.0"
dependencies:
"@cspotcode/source-map-support": 0.7.0
"@cspotcode/source-map-support": ^0.8.0
"@tsconfig/node10": ^1.0.7
"@tsconfig/node12": ^1.0.7
"@tsconfig/node14": ^1.0.0
@ -14890,7 +14877,7 @@ __metadata:
create-require: ^1.1.0
diff: ^4.0.1
make-error: ^1.1.1
v8-compile-cache-lib: ^3.0.0
v8-compile-cache-lib: ^3.0.1
yn: 3.1.1
peerDependencies:
"@swc/core": ">=1.2.50"
@ -14909,7 +14896,7 @@ __metadata:
ts-node-script: dist/bin-script.js
ts-node-transpile-only: dist/bin-transpile.js
ts-script: dist/bin-script-deprecated.js
checksum: 2a379e43f7478d0b79e1e63af91fe222d83857727957df4bd3bdf3c0a884de5097b12feb9bbf530074526b8874c0338b0e6328cf334f3a5e2c49c71e837273f7
checksum: 1c22dc8dd80d0ba4dd4250b82cc032b63f6fbe8c87f8197cef43e7f9e2d43f5b333b445ed712e3006e24119257b4bff2c46605f7da61ab6f5e9514885d296f0c
languageName: node
linkType: hard
@ -15100,23 +15087,23 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:^4.3.5":
version: 4.6.3
resolution: "typescript@npm:4.6.3"
"typescript@npm:^4.7.2":
version: 4.7.2
resolution: "typescript@npm:4.7.2"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 255bb26c8cb846ca689dd1c3a56587af4f69055907aa2c154796ea28ee0dea871535b1c78f85a6212c77f2657843a269c3a742d09d81495b97b914bf7920415b
checksum: 5163585e6b56410f77d5483b698d9489bbee8902c99029eb70cf6d21525a186530ce19a00951af84eefd4a131cc51d0959f5118e25e70ab61f45ac4057dbd1ef
languageName: node
linkType: hard
"typescript@patch:typescript@^4.3.5#~builtin<compat/typescript>":
version: 4.6.3
resolution: "typescript@patch:typescript@npm%3A4.6.3#~builtin<compat/typescript>::version=4.6.3&hash=bda367"
"typescript@patch:typescript@^4.7.2#~builtin<compat/typescript>":
version: 4.7.2
resolution: "typescript@patch:typescript@npm%3A4.7.2#~builtin<compat/typescript>::version=4.7.2&hash=bda367"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 6bf45caf847062420592e711bc9c28bf5f9a9a7fa8245343b81493e4ededae33f1774009d1234d911422d1646a2c839f44e1a23ecb111b40a60ac2ea4c1482a8
checksum: 09d93fc0983d38eadd9b0427f790b49b4437f45002a87d447be3fbe53120880e87a91dd03e1d900498f99205d6e0b7c9784fe41fca11d56f4bbce371f74bb160
languageName: node
linkType: hard
@ -15417,7 +15404,7 @@ __metadata:
languageName: node
linkType: hard
"v8-compile-cache-lib@npm:^3.0.0":
"v8-compile-cache-lib@npm:^3.0.1":
version: 3.0.1
resolution: "v8-compile-cache-lib@npm:3.0.1"
checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0

Loading…
Cancel
Save