diff --git a/.eslintrc.js b/.eslintrc.js index 34a1d792a2e..79acb28333d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -122,6 +122,11 @@ module.exports = { 'off', { matchDescription: '^[A-Z`\\d_][\\s\\S]*[.?!`>)}]$' }, ], + + // Disable rules that the `eslint-config-prettier` tool reports as + // conflicting + 'max-statements-per-line': 'off', + 'no-tabs': 'off', }, settings: { 'import/resolver': { diff --git a/.prettierrc.js b/.prettierrc.js index 36634700bfe..58bac7292c4 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -2,6 +2,7 @@ * @type {import('prettier').Options} */ module.exports = { + plugins: ['prettier-plugin-packagejson'], // All of these are defaults except singleQuote, but we specify them // for explicitness quoteProps: 'as-needed', diff --git a/package.json b/package.json index 05306d8ad82..dfbe2004d31 100644 --- a/package.json +++ b/package.json @@ -64,14 +64,14 @@ "babel-jest": "^27.5.1", "depcheck": "^1.4.7", "eslint": "^8.44.0", - "eslint-config-prettier": "^8.5.0", + "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^2.5.0", "eslint-interactive": "^10.8.0", "eslint-plugin-import": "2.26.0", "eslint-plugin-jest": "^27.1.5", "eslint-plugin-jsdoc": "^39.9.1", "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.1.1", "eth-block-tracker": "^8.0.0", "execa": "^5.0.0", @@ -79,8 +79,8 @@ "jest": "^27.5.1", "jest-silent-reporter": "^0.5.0", "nock": "^13.3.1", - "prettier": "^2.7.1", - "prettier-plugin-packagejson": "^2.4.5", + "prettier": "^3.2.5", + "prettier-plugin-packagejson": "^2.5.0", "simple-git-hooks": "^2.8.0", "ts-node": "^10.9.1", "tsup": "^8.0.2", diff --git a/packages/accounts-controller/src/AccountsController.ts b/packages/accounts-controller/src/AccountsController.ts index 2c976d5a84b..82c6df6188b 100644 --- a/packages/accounts-controller/src/AccountsController.ts +++ b/packages/accounts-controller/src/AccountsController.ts @@ -327,39 +327,44 @@ export class AccountsController extends BaseController< const accounts: Record = [ ...normalAccounts, ...snapAccounts, - ].reduce((internalAccountMap, internalAccount) => { - const keyringTypeName = keyringTypeToName( - internalAccount.metadata.keyring.type, - ); - const keyringAccountIndex = keyringTypes.get(keyringTypeName) ?? 0; - if (keyringAccountIndex) { - keyringTypes.set(keyringTypeName, keyringAccountIndex + 1); - } else { - keyringTypes.set(keyringTypeName, 1); - } - - const existingAccount = previousAccounts[internalAccount.id]; - - internalAccountMap[internalAccount.id] = { - ...internalAccount, + ].reduce( + (internalAccountMap, internalAccount) => { + const keyringTypeName = keyringTypeToName( + internalAccount.metadata.keyring.type, + ); + const keyringAccountIndex = keyringTypes.get(keyringTypeName) ?? 0; + if (keyringAccountIndex) { + keyringTypes.set(keyringTypeName, keyringAccountIndex + 1); + } else { + keyringTypes.set(keyringTypeName, 1); + } - metadata: { - ...internalAccount.metadata, - name: - this.#populateExistingMetadata(existingAccount?.id, 'name') ?? - `${keyringTypeName} ${keyringAccountIndex + 1}`, - importTime: - this.#populateExistingMetadata(existingAccount?.id, 'importTime') ?? - Date.now(), - lastSelected: this.#populateExistingMetadata( - existingAccount?.id, - 'lastSelected', - ), - }, - }; + const existingAccount = previousAccounts[internalAccount.id]; + + internalAccountMap[internalAccount.id] = { + ...internalAccount, + + metadata: { + ...internalAccount.metadata, + name: + this.#populateExistingMetadata(existingAccount?.id, 'name') ?? + `${keyringTypeName} ${keyringAccountIndex + 1}`, + importTime: + this.#populateExistingMetadata( + existingAccount?.id, + 'importTime', + ) ?? Date.now(), + lastSelected: this.#populateExistingMetadata( + existingAccount?.id, + 'lastSelected', + ), + }, + }; - return internalAccountMap; - }, {} as Record); + return internalAccountMap; + }, + {} as Record, + ); this.update((currentState: Draft) => { (currentState as AccountsControllerState).internalAccounts.accounts = diff --git a/packages/assets-controllers/src/AssetsContractController.test.ts b/packages/assets-controllers/src/AssetsContractController.test.ts index 1ac2b3b0fc4..9c5f1721adf 100644 --- a/packages/assets-controllers/src/AssetsContractController.test.ts +++ b/packages/assets-controllers/src/AssetsContractController.test.ts @@ -83,7 +83,7 @@ async function setupAssetContractControllers() { provider, // TODO: Replace `any` with type // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any), + }) as any, }); return { @@ -721,9 +721,8 @@ describe('AssetsContractController', () => { }, ], }); - const symbol = await assetsContract.getERC721AssetSymbol( - ERC721_GODS_ADDRESS, - ); + const symbol = + await assetsContract.getERC721AssetSymbol(ERC721_GODS_ADDRESS); expect(symbol).toBe('GODS'); messenger.clearEventSubscriptions('NetworkController:networkDidChange'); }); @@ -761,9 +760,8 @@ describe('AssetsContractController', () => { }, ], }); - const decimals = await assetsContract.getERC20TokenDecimals( - ERC20_SAI_ADDRESS, - ); + const decimals = + await assetsContract.getERC20TokenDecimals(ERC20_SAI_ADDRESS); expect(Number(decimals)).toBe(18); messenger.clearEventSubscriptions('NetworkController:networkDidChange'); }); diff --git a/packages/assets-controllers/src/Standards/ERC20Standard.test.ts b/packages/assets-controllers/src/Standards/ERC20Standard.test.ts index f149c5dc000..6df29f8e640 100644 --- a/packages/assets-controllers/src/Standards/ERC20Standard.test.ts +++ b/packages/assets-controllers/src/Standards/ERC20Standard.test.ts @@ -68,9 +68,8 @@ describe('ERC20Standard', () => { result: '0x0000000000000000000000000000000000000000000000000000000000000012', }); - const maticDecimals = await erc20Standard.getTokenDecimals( - ERC20_MATIC_ADDRESS, - ); + const maticDecimals = + await erc20Standard.getTokenDecimals(ERC20_MATIC_ADDRESS); expect(maticDecimals.toString()).toBe('18'); }); diff --git a/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.ts b/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.ts index d788e4b9b3a..727a0b28b0e 100644 --- a/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.ts +++ b/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.ts @@ -87,9 +87,8 @@ export class ERC721Standard { */ getTokenURI = async (address: string, tokenId: string): Promise => { const contract = new Contract(address, abiERC721, this.provider); - const supportsMetadata = await this.contractSupportsMetadataInterface( - address, - ); + const supportsMetadata = + await this.contractSupportsMetadataInterface(address); if (!supportsMetadata) { // Do not throw error here, supporting Metadata interface is optional even though majority of ERC721 nfts do support it. // This change is made because of instances of NFTs that are ERC404( mixed ERC20 / ERC721 implementation). diff --git a/packages/assets-controllers/src/TokenDetectionController.test.ts b/packages/assets-controllers/src/TokenDetectionController.test.ts index b30e755c876..520d6027711 100644 --- a/packages/assets-controllers/src/TokenDetectionController.test.ts +++ b/packages/assets-controllers/src/TokenDetectionController.test.ts @@ -360,7 +360,7 @@ describe('TokenDetectionController', () => { () => ({ configuration: { chainId: '0x89' }, - } as unknown as AutoManagedNetworkClient), + }) as unknown as AutoManagedNetworkClient, ); mockTokenListGetState({ diff --git a/packages/assets-controllers/src/TokensController.ts b/packages/assets-controllers/src/TokensController.ts index a96de9cd6c4..4ebeaa62476 100644 --- a/packages/assets-controllers/src/TokensController.ts +++ b/packages/assets-controllers/src/TokensController.ts @@ -435,10 +435,13 @@ export class TokensController extends BaseControllerV1< const { tokens, detectedTokens, ignoredTokens } = this.state; const importedTokensMap: { [key: string]: true } = {}; // Used later to dedupe imported tokens - const newTokensMap = tokens.reduce((output, current) => { - output[current.address] = current; - return output; - }, {} as { [address: string]: Token }); + const newTokensMap = tokens.reduce( + (output, current) => { + output[current.address] = current; + return output; + }, + {} as { [address: string]: Token }, + ); try { tokensToImport.forEach((tokenToAdd) => { const { address, symbol, decimals, image, aggregators, name } = diff --git a/packages/base-controller/src/RestrictedControllerMessenger.ts b/packages/base-controller/src/RestrictedControllerMessenger.ts index e3a077cff73..866fe80e122 100644 --- a/packages/base-controller/src/RestrictedControllerMessenger.ts +++ b/packages/base-controller/src/RestrictedControllerMessenger.ts @@ -101,9 +101,7 @@ export class RestrictedControllerMessenger< /* istanbul ignore if */ // Branch unreachable with valid types if (!this.#isInCurrentNamespace(action)) { throw new Error( - `Only allowed registering action handlers prefixed by '${ - this.#controllerName - }:'`, + `Only allowed registering action handlers prefixed by '${this.#controllerName}:'`, ); } this.#controllerMessenger.registerActionHandler(action, handler); @@ -126,9 +124,7 @@ export class RestrictedControllerMessenger< /* istanbul ignore if */ // Branch unreachable with valid types if (!this.#isInCurrentNamespace(action)) { throw new Error( - `Only allowed unregistering action handlers prefixed by '${ - this.#controllerName - }:'`, + `Only allowed unregistering action handlers prefixed by '${this.#controllerName}:'`, ); } this.#controllerMessenger.unregisterActionHandler(action); diff --git a/packages/keyring-controller/src/KeyringController.test.ts b/packages/keyring-controller/src/KeyringController.test.ts index a04ca041c05..117781a21cb 100644 --- a/packages/keyring-controller/src/KeyringController.test.ts +++ b/packages/keyring-controller/src/KeyringController.test.ts @@ -154,12 +154,10 @@ describe('KeyringController', () => { it('should not add a new account if called twice with the same accountCount param', async () => { await withController(async ({ controller, initialState }) => { const accountCount = initialState.keyrings[0].accounts.length; - const firstAccountAdded = await controller.addNewAccount( - accountCount, - ); - const secondAccountAdded = await controller.addNewAccount( - accountCount, - ); + const firstAccountAdded = + await controller.addNewAccount(accountCount); + const secondAccountAdded = + await controller.addNewAccount(accountCount); expect(firstAccountAdded).toBe(secondAccountAdded); expect(controller.state.keyrings[0].accounts).toHaveLength( accountCount + 1, @@ -193,13 +191,11 @@ describe('KeyringController', () => { const accountCount = initialState.keyrings[0].accounts.length; // We add a new account for "index 1" (not existing yet) - const firstAccountAdded = await controller.addNewAccount( - accountCount, - ); + const firstAccountAdded = + await controller.addNewAccount(accountCount); // Adding an account for an existing index will return the existing account's address - const secondAccountAdded = await controller.addNewAccount( - accountCount, - ); + const secondAccountAdded = + await controller.addNewAccount(accountCount); expect(firstAccountAdded).toBe(secondAccountAdded); expect(controller.state.keyrings[0].accounts).toHaveLength( accountCount + 1, @@ -231,9 +227,8 @@ describe('KeyringController', () => { const [primaryKeyring] = controller.getKeyringsByType( KeyringTypes.hd, ) as Keyring[]; - const addedAccountAddress = await controller.addNewAccountForKeyring( - primaryKeyring, - ); + const addedAccountAddress = + await controller.addNewAccountForKeyring(primaryKeyring); expect(initialState.keyrings).toHaveLength(1); expect(initialState.keyrings[0].accounts).not.toStrictEqual( controller.state.keyrings[0].accounts, @@ -279,9 +274,8 @@ describe('KeyringController', () => { const [primaryKeyring] = controller.getKeyringsByType( KeyringTypes.hd, ) as Keyring[]; - const addedAccountAddress = await controller.addNewAccountForKeyring( - primaryKeyring, - ); + const addedAccountAddress = + await controller.addNewAccountForKeyring(primaryKeyring); expect(initialState.keyrings).toHaveLength(1); expect(initialState.keyrings[0].accounts).not.toStrictEqual( controller.state.keyrings[0].accounts, @@ -406,9 +400,8 @@ describe('KeyringController', () => { await withController( { cacheEncryptionKey }, async ({ controller, initialState }) => { - const currentSeedWord = await controller.exportSeedPhrase( - password, - ); + const currentSeedWord = + await controller.exportSeedPhrase(password); await controller.createNewVaultAndRestore( password, @@ -475,9 +468,8 @@ describe('KeyringController', () => { cacheEncryptionKey, encryptor, }); - const initialSeedWord = await controller.exportSeedPhrase( - password, - ); + const initialSeedWord = + await controller.exportSeedPhrase(password); await cleanKeyringController.createNewVaultAndKeychain( password, ); @@ -541,14 +533,12 @@ describe('KeyringController', () => { await withController( { cacheEncryptionKey }, async ({ controller, initialState }) => { - const initialSeedWord = await controller.exportSeedPhrase( - password, - ); + const initialSeedWord = + await controller.exportSeedPhrase(password); const initialVault = controller.state.vault; await controller.createNewVaultAndKeychain(password); - const currentSeedWord = await controller.exportSeedPhrase( - password, - ); + const currentSeedWord = + await controller.exportSeedPhrase(password); expect(initialSeedWord).toBeDefined(); expect(initialState).toStrictEqual(controller.state); expect(currentSeedWord).toBeDefined(); @@ -2441,21 +2431,18 @@ describe('KeyringController', () => { ), ); - const firstPage = await signProcessKeyringController.connectQRHardware( - 0, - ); + const firstPage = + await signProcessKeyringController.connectQRHardware(0); expect(firstPage).toHaveLength(5); expect(firstPage[0].index).toBe(0); - const secondPage = await signProcessKeyringController.connectQRHardware( - 1, - ); + const secondPage = + await signProcessKeyringController.connectQRHardware(1); expect(secondPage).toHaveLength(5); expect(secondPage[0].index).toBe(5); - const goBackPage = await signProcessKeyringController.connectQRHardware( - -1, - ); + const goBackPage = + await signProcessKeyringController.connectQRHardware(-1); expect(goBackPage).toStrictEqual(firstPage); await signProcessKeyringController.unlockQRHardwareWalletAccount(0); diff --git a/packages/network-controller/src/NetworkController.ts b/packages/network-controller/src/NetworkController.ts index c98f3b5b5cd..5b16dae4218 100644 --- a/packages/network-controller/src/NetworkController.ts +++ b/packages/network-controller/src/NetworkController.ts @@ -806,9 +806,8 @@ export class NetworkController extends BaseController< let updatedIsEIP1559Compatible: boolean | undefined; try { - updatedIsEIP1559Compatible = await this.#determineEIP1559Compatibility( - networkClientId, - ); + updatedIsEIP1559Compatible = + await this.#determineEIP1559Compatibility(networkClientId); updatedNetworkStatus = NetworkStatus.Available; } catch (error) { if (isErrorWithCode(error)) { @@ -1169,9 +1168,7 @@ export class NetworkController extends BaseController< networkClientId: NetworkClientId, ): NetworkConfiguration | undefined { if (isInfuraNetworkType(networkClientId)) { - const rpcUrl = `https://${networkClientId}.infura.io/v3/${ - this.#infuraProjectId - }`; + const rpcUrl = `https://${networkClientId}.infura.io/v3/${this.#infuraProjectId}`; return { rpcUrl, ...BUILT_IN_NETWORKS[networkClientId], diff --git a/packages/permission-controller/src/Permission.ts b/packages/permission-controller/src/Permission.ts index d5aa7e7b8ce..bc424119adf 100644 --- a/packages/permission-controller/src/Permission.ts +++ b/packages/permission-controller/src/Permission.ts @@ -117,8 +117,8 @@ export type ValidPermission< type ExtractArrayMembers = ArrayType extends [] ? never : ArrayType extends unknown[] | readonly unknown[] - ? ArrayType[number] - : never; + ? ArrayType[number] + : never; /** * A utility type for extracting the allowed caveat types for a particular @@ -534,11 +534,12 @@ export type PermissionSpecificationBuilderExportConstraint = { type ValidRestrictedMethodSpecification< Specification extends RestrictedMethodSpecificationConstraint, -> = Specification['methodImplementation'] extends ValidRestrictedMethod< - Specification['methodImplementation'] -> - ? Specification - : never; +> = + Specification['methodImplementation'] extends ValidRestrictedMethod< + Specification['methodImplementation'] + > + ? Specification + : never; /** * Constraint for {@link PermissionSpecificationConstraint} objects that @@ -552,10 +553,10 @@ export type ValidPermissionSpecification< ? Specification['permissionType'] extends PermissionType.Endowment ? Specification : Specification['permissionType'] extends PermissionType.RestrictedMethod - ? ValidRestrictedMethodSpecification< - Extract - > - : never + ? ValidRestrictedMethodSpecification< + Extract + > + : never : never; /** diff --git a/packages/permission-controller/src/PermissionController.ts b/packages/permission-controller/src/PermissionController.ts index c6b27b4796c..9d58d63357d 100644 --- a/packages/permission-controller/src/PermissionController.ts +++ b/packages/permission-controller/src/PermissionController.ts @@ -428,12 +428,13 @@ type CaveatMutatorResult = export type ExtractPermission< ControllerPermissionSpecification extends PermissionSpecificationConstraint, ControllerCaveatSpecification extends CaveatSpecificationConstraint, -> = ControllerPermissionSpecification extends ValidPermissionSpecification - ? ValidPermission< - ControllerPermissionSpecification['targetName'], - ExtractCaveats - > - : never; +> = + ControllerPermissionSpecification extends ValidPermissionSpecification + ? ValidPermission< + ControllerPermissionSpecification['targetName'], + ExtractCaveats + > + : never; /** * Extracts the restricted method permission(s) specified by the given @@ -1110,7 +1111,8 @@ export class PermissionController< ControllerPermissionSpecification, ControllerCaveatSpecification >['parentCapability'], - CaveatType extends ExtractAllowedCaveatTypes, + CaveatType extends + ExtractAllowedCaveatTypes, >(origin: OriginString, target: TargetName, caveatType: CaveatType): boolean { return Boolean(this.getCaveat(origin, target, caveatType)); } @@ -1135,7 +1137,8 @@ export class PermissionController< ControllerPermissionSpecification, ControllerCaveatSpecification >['parentCapability'], - CaveatType extends ExtractAllowedCaveatTypes, + CaveatType extends + ExtractAllowedCaveatTypes, >( origin: OriginString, target: TargetName, @@ -1175,7 +1178,8 @@ export class PermissionController< ControllerPermissionSpecification, ControllerCaveatSpecification >['parentCapability'], - CaveatType extends ExtractAllowedCaveatTypes, + CaveatType extends + ExtractAllowedCaveatTypes, >( origin: OriginString, target: TargetName, @@ -1212,7 +1216,8 @@ export class PermissionController< ControllerPermissionSpecification, ControllerCaveatSpecification >['parentCapability'], - CaveatType extends ExtractAllowedCaveatTypes, + CaveatType extends + ExtractAllowedCaveatTypes, CaveatValue extends ExtractCaveatValue< ControllerCaveatSpecification, CaveatType @@ -1253,7 +1258,8 @@ export class PermissionController< ControllerPermissionSpecification, ControllerCaveatSpecification >['parentCapability'], - CaveatType extends ExtractAllowedCaveatTypes, + CaveatType extends + ExtractAllowedCaveatTypes, >( origin: OriginString, target: TargetName, @@ -1414,7 +1420,8 @@ export class PermissionController< */ removeCaveat< TargetName extends ControllerPermissionSpecification['targetName'], - CaveatType extends ExtractAllowedCaveatTypes, + CaveatType extends + ExtractAllowedCaveatTypes, >(origin: OriginString, target: TargetName, caveatType: CaveatType): void { this.update((draftState) => { const permission = draftState.subjects[origin]?.permissions[target]; diff --git a/packages/permission-controller/src/rpc-methods/requestPermissions.ts b/packages/permission-controller/src/rpc-methods/requestPermissions.ts index f89143ed813..f09a91d0749 100644 --- a/packages/permission-controller/src/rpc-methods/requestPermissions.ts +++ b/packages/permission-controller/src/rpc-methods/requestPermissions.ts @@ -54,9 +54,8 @@ async function requestPermissionsImplementation( } const [requestedPermissions] = params; - const [grantedPermissions] = await requestPermissionsForOrigin( - requestedPermissions, - ); + const [grantedPermissions] = + await requestPermissionsForOrigin(requestedPermissions); // `wallet_requestPermission` is specified to return an array. res.result = Object.values(grantedPermissions); diff --git a/packages/preferences-controller/src/PreferencesController.test.ts b/packages/preferences-controller/src/PreferencesController.test.ts index 745b6f3260c..313a5946648 100644 --- a/packages/preferences-controller/src/PreferencesController.test.ts +++ b/packages/preferences-controller/src/PreferencesController.test.ts @@ -32,10 +32,13 @@ describe('PreferencesController', () => { isIpfsGatewayEnabled: true, showIncomingTransactions: Object.values( ETHERSCAN_SUPPORTED_CHAIN_IDS, - ).reduce((acc, curr) => { - acc[curr] = true; - return acc; - }, {} as { [chainId in EtherscanSupportedHexChainId]: boolean }), + ).reduce( + (acc, curr) => { + acc[curr] = true; + return acc; + }, + {} as { [chainId in EtherscanSupportedHexChainId]: boolean }, + ), }); }); diff --git a/packages/signature-controller/src/SignatureController.test.ts b/packages/signature-controller/src/SignatureController.test.ts index 0fb258b17e0..e905affe90c 100644 --- a/packages/signature-controller/src/SignatureController.test.ts +++ b/packages/signature-controller/src/SignatureController.test.ts @@ -97,7 +97,7 @@ const createMessengerMock = () => call: jest.fn(), // TODO: Replace `any` with type // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any as jest.Mocked); + }) as any as jest.Mocked; const addUnapprovedMessageMock = jest.fn(); const waitForFinishStatusMock = jest.fn(); diff --git a/packages/transaction-controller/src/TransactionController.test.ts b/packages/transaction-controller/src/TransactionController.test.ts index 231ef5336f3..d62ec2d4887 100644 --- a/packages/transaction-controller/src/TransactionController.test.ts +++ b/packages/transaction-controller/src/TransactionController.test.ts @@ -580,7 +580,7 @@ describe('TransactionController', () => { getNetworkState: () => network.state, // TODO: Replace with a real type // eslint-disable-next-line @typescript-eslint/no-explicit-any - getNetworkClientRegistry: () => ({} as any), + getNetworkClientRegistry: () => ({}) as any, getPermittedAccounts: async () => [ACCOUNT_MOCK], getSelectedAddress: () => ACCOUNT_MOCK, isMultichainEnabled: false, diff --git a/packages/transaction-controller/src/TransactionController.ts b/packages/transaction-controller/src/TransactionController.ts index 94dae326364..33a31f1ee6a 100644 --- a/packages/transaction-controller/src/TransactionController.ts +++ b/packages/transaction-controller/src/TransactionController.ts @@ -1017,9 +1017,8 @@ export class TransactionController extends BaseController< const networkClientId = requestNetworkClientId ?? this.#getGlobalNetworkClientId(); - const isEIP1559Compatible = await this.getEIP1559Compatibility( - networkClientId, - ); + const isEIP1559Compatible = + await this.getEIP1559Compatibility(networkClientId); validateTxParams(txParams, isEIP1559Compatible); diff --git a/packages/transaction-controller/src/helpers/EtherscanRemoteTransactionSource.ts b/packages/transaction-controller/src/helpers/EtherscanRemoteTransactionSource.ts index 651eec110ef..eff4b2b2646 100644 --- a/packages/transaction-controller/src/helpers/EtherscanRemoteTransactionSource.ts +++ b/packages/transaction-controller/src/helpers/EtherscanRemoteTransactionSource.ts @@ -98,9 +98,8 @@ export class EtherscanRemoteTransactionSource ) => { const { currentChainId } = request; - const etherscanTransactions = await fetchEtherscanTransactions( - etherscanRequest, - ); + const etherscanTransactions = + await fetchEtherscanTransactions(etherscanRequest); return this.#getResponseTransactions(etherscanTransactions).map((tx) => this.#normalizeTransaction(tx, currentChainId), @@ -113,9 +112,8 @@ export class EtherscanRemoteTransactionSource ) => { const { currentChainId } = request; - const etherscanTransactions = await fetchEtherscanTokenTransactions( - etherscanRequest, - ); + const etherscanTransactions = + await fetchEtherscanTokenTransactions(etherscanRequest); return this.#getResponseTransactions(etherscanTransactions).map((tx) => this.#normalizeTokenTransaction(tx, currentChainId), diff --git a/packages/transaction-controller/src/helpers/GasFeePoller.test.ts b/packages/transaction-controller/src/helpers/GasFeePoller.test.ts index 91248f55464..607866bef69 100644 --- a/packages/transaction-controller/src/helpers/GasFeePoller.test.ts +++ b/packages/transaction-controller/src/helpers/GasFeePoller.test.ts @@ -94,7 +94,7 @@ describe('GasFeePoller', () => { onStateChange: (listener: () => void) => { triggerOnStateChange = listener; }, - getProvider: () => ({} as Provider), + getProvider: () => ({}) as Provider, }; }); diff --git a/packages/transaction-controller/src/helpers/IncomingTransactionHelper.test.ts b/packages/transaction-controller/src/helpers/IncomingTransactionHelper.test.ts index 49b39c4effc..4a89aaa4b09 100644 --- a/packages/transaction-controller/src/helpers/IncomingTransactionHelper.test.ts +++ b/packages/transaction-controller/src/helpers/IncomingTransactionHelper.test.ts @@ -346,9 +346,8 @@ describe('IncomingTransactionHelper', () => { updateTransactions: true, }); - const { transactionsListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { transactionsListener } = + await emitBlockTrackerLatestEvent(helper); expect(transactionsListener).not.toHaveBeenCalled(); }); @@ -365,9 +364,8 @@ describe('IncomingTransactionHelper', () => { .mockReturnValueOnce(false), }); - const { transactionsListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { transactionsListener } = + await emitBlockTrackerLatestEvent(helper); expect(transactionsListener).not.toHaveBeenCalled(); }); @@ -381,9 +379,8 @@ describe('IncomingTransactionHelper', () => { ), }); - const { transactionsListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { transactionsListener } = + await emitBlockTrackerLatestEvent(helper); expect(transactionsListener).not.toHaveBeenCalled(); }); @@ -394,9 +391,8 @@ describe('IncomingTransactionHelper', () => { remoteTransactionSource: createRemoteTransactionSourceMock([]), }); - const { transactionsListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { transactionsListener } = + await emitBlockTrackerLatestEvent(helper); expect(transactionsListener).not.toHaveBeenCalled(); }); @@ -416,9 +412,8 @@ describe('IncomingTransactionHelper', () => { ]), }); - const { transactionsListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { transactionsListener } = + await emitBlockTrackerLatestEvent(helper); expect(transactionsListener).not.toHaveBeenCalled(); }); @@ -432,9 +427,8 @@ describe('IncomingTransactionHelper', () => { ), }); - const { transactionsListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { transactionsListener } = + await emitBlockTrackerLatestEvent(helper); expect(transactionsListener).not.toHaveBeenCalled(); }); @@ -465,9 +459,8 @@ describe('IncomingTransactionHelper', () => { ]), }); - const { lastFetchedBlockNumbers } = await emitBlockTrackerLatestEvent( - helper, - ); + const { lastFetchedBlockNumbers } = + await emitBlockTrackerLatestEvent(helper); expect(lastFetchedBlockNumbers).toStrictEqual({ [`${CHAIN_ID_MOCK}#${ADDRESS_MOCK}#${LAST_BLOCK_VARIATION_MOCK}`]: @@ -481,9 +474,8 @@ describe('IncomingTransactionHelper', () => { remoteTransactionSource: createRemoteTransactionSourceMock([]), }); - const { blockNumberListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { blockNumberListener } = + await emitBlockTrackerLatestEvent(helper); expect(blockNumberListener).not.toHaveBeenCalled(); }); @@ -496,9 +488,8 @@ describe('IncomingTransactionHelper', () => { ]), }); - const { blockNumberListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { blockNumberListener } = + await emitBlockTrackerLatestEvent(helper); expect(blockNumberListener).not.toHaveBeenCalled(); }); @@ -514,9 +505,8 @@ describe('IncomingTransactionHelper', () => { ]), }); - const { blockNumberListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { blockNumberListener } = + await emitBlockTrackerLatestEvent(helper); expect(blockNumberListener).not.toHaveBeenCalled(); }); @@ -533,9 +523,8 @@ describe('IncomingTransactionHelper', () => { }), }); - const { blockNumberListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { blockNumberListener } = + await emitBlockTrackerLatestEvent(helper); expect(blockNumberListener).not.toHaveBeenCalled(); }); @@ -549,9 +538,8 @@ describe('IncomingTransactionHelper', () => { getCurrentAccount: () => undefined as unknown as string, }); - const { blockNumberListener } = await emitBlockTrackerLatestEvent( - helper, - ); + const { blockNumberListener } = + await emitBlockTrackerLatestEvent(helper); expect(blockNumberListener).not.toHaveBeenCalled(); }); @@ -565,9 +553,8 @@ describe('IncomingTransactionHelper', () => { ), }); - const { lastFetchedBlockNumbers } = await emitBlockTrackerLatestEvent( - helper, - ); + const { lastFetchedBlockNumbers } = + await emitBlockTrackerLatestEvent(helper); expect(lastFetchedBlockNumbers).toStrictEqual({ [`${CHAIN_ID_MOCK}#${ADDRESS_MOCK}`]: parseInt( diff --git a/packages/transaction-controller/src/utils/gas.ts b/packages/transaction-controller/src/utils/gas.ts index d0095481f9c..b0812b93d44 100644 --- a/packages/transaction-controller/src/utils/gas.ts +++ b/packages/transaction-controller/src/utils/gas.ts @@ -53,9 +53,8 @@ export async function estimateGas( const request = { ...txParams }; const { data, value } = request; - const { gasLimit: gasLimitHex, number: blockNumber } = await getLatestBlock( - ethQuery, - ); + const { gasLimit: gasLimitHex, number: blockNumber } = + await getLatestBlock(ethQuery); const gasLimitBN = hexToBN(gasLimitHex); diff --git a/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.test.ts b/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.test.ts index b3c16aa3585..260d781e758 100644 --- a/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.test.ts +++ b/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.test.ts @@ -128,7 +128,9 @@ describe('PendingUserOperationTracker', () => { blockTracker: { getCurrentBlock: () => BLOCK_NUMBER_MOCK }, configuration: { chainId: CHAIN_ID_MOCK }, provider: {}, - } as unknown as ReturnType); + } as unknown as ReturnType< + NetworkControllerGetNetworkClientByIdAction['handler'] + >); }); describe('_executePoll', () => { diff --git a/scripts/create-package/utils.ts b/scripts/create-package/utils.ts index 03c0bae4efd..fbde3aec881 100644 --- a/scripts/create-package/utils.ts +++ b/scripts/create-package/utils.ts @@ -21,11 +21,10 @@ const allPlaceholdersRegex = new RegExp( ); // Our lint config really hates this, but it works. -// eslint-disable-next-line -const prettierRc = require(path.join( - REPO_ROOT, - '.prettierrc.js', -)) as PrettierOptions; +// eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires,import/no-dynamic-require +const prettierRc: PrettierOptions = require( + path.join(REPO_ROOT, '.prettierrc.js'), +); /** * The data necessary to create a new package. diff --git a/yarn.lock b/yarn.lock index d82d38895e4..d51d9ddb3dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1934,14 +1934,14 @@ __metadata: babel-jest: ^27.5.1 depcheck: ^1.4.7 eslint: ^8.44.0 - eslint-config-prettier: ^8.5.0 + eslint-config-prettier: ^9.1.0 eslint-import-resolver-typescript: ^2.5.0 eslint-interactive: ^10.8.0 eslint-plugin-import: 2.26.0 eslint-plugin-jest: ^27.1.5 eslint-plugin-jsdoc: ^39.9.1 eslint-plugin-n: ^15.7.0 - eslint-plugin-prettier: ^4.2.1 + eslint-plugin-prettier: ^5.1.3 eslint-plugin-promise: ^6.1.1 eth-block-tracker: ^8.0.0 execa: ^5.0.0 @@ -1949,8 +1949,8 @@ __metadata: jest: ^27.5.1 jest-silent-reporter: ^0.5.0 nock: ^13.3.1 - prettier: ^2.7.1 - prettier-plugin-packagejson: ^2.4.5 + prettier: ^3.2.5 + prettier-plugin-packagejson: ^2.5.0 simple-git-hooks: ^2.8.0 ts-node: ^10.9.1 tsup: ^8.0.2 @@ -6058,14 +6058,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:^8.5.0": - version: 8.10.0 - resolution: "eslint-config-prettier@npm:8.10.0" +"eslint-config-prettier@npm:^9.1.0": + version: 9.1.0 + resolution: "eslint-config-prettier@npm:9.1.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 153266badd477e49b0759816246b2132f1dbdb6c7f313ca60a9af5822fd1071c2bc5684a3720d78b725452bbac04bb130878b2513aea5e72b1b792de5a69fec8 + checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 languageName: node linkType: hard @@ -6231,18 +6231,23 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-prettier@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-plugin-prettier@npm:4.2.1" +"eslint-plugin-prettier@npm:^5.1.3": + version: 5.1.3 + resolution: "eslint-plugin-prettier@npm:5.1.3" dependencies: prettier-linter-helpers: ^1.0.0 + synckit: ^0.8.6 peerDependencies: - eslint: ">=7.28.0" - prettier: ">=2.0.0" + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + eslint-config-prettier: "*" + prettier: ">=3.0.0" peerDependenciesMeta: + "@types/eslint": + optional: true eslint-config-prettier: optional: true - checksum: b9e839d2334ad8ec7a5589c5cb0f219bded260839a857d7a486997f9870e95106aa59b8756ff3f37202085ebab658de382b0267cae44c3a7f0eb0bcc03a4f6d6 + checksum: eb2a7d46a1887e1b93788ee8f8eb81e0b6b2a6f5a66a62bc6f375b033fc4e7ca16448da99380be800042786e76cf5c0df9c87a51a2c9b960ed47acbd7c0b9381 languageName: node linkType: hard @@ -9998,7 +10003,7 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-packagejson@npm:^2.4.5": +"prettier-plugin-packagejson@npm:^2.5.0": version: 2.5.0 resolution: "prettier-plugin-packagejson@npm:2.5.0" dependencies: @@ -10013,7 +10018,7 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^2.7.1, prettier@npm:^2.8.8": +"prettier@npm:^2.8.8": version: 2.8.8 resolution: "prettier@npm:2.8.8" bin: @@ -10022,6 +10027,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.2.5": + version: 3.2.5 + resolution: "prettier@npm:3.2.5" + bin: + prettier: bin/prettier.cjs + checksum: 2ee4e1417572372afb7a13bb446b34f20f1bf1747db77cf6ccaf57a9be005f2f15c40f903d41a6b79eec3f57fff14d32a20fb6dee1f126da48908926fe43c311 + languageName: node + linkType: hard + "pretty-format@npm:^27.0.0, pretty-format@npm:^27.5.1": version: 27.5.1 resolution: "pretty-format@npm:27.5.1" @@ -11227,6 +11241,16 @@ __metadata: languageName: node linkType: hard +"synckit@npm:^0.8.6": + version: 0.8.8 + resolution: "synckit@npm:0.8.8" + dependencies: + "@pkgr/core": ^0.1.0 + tslib: ^2.6.2 + checksum: 9ed5d33abb785f5f24e2531efd53b2782ca77abf7912f734d170134552b99001915531be5a50297aa45c5701b5c9041e8762e6cd7a38e41e2461c1e7fccdedf8 + languageName: node + linkType: hard + "table@npm:^6.8.1": version: 6.8.2 resolution: "table@npm:6.8.2"