From 6ab12001e3dc24679efe194741b8a363dbf66db3 Mon Sep 17 00:00:00 2001 From: Whymarrh Whitby Date: Tue, 18 Aug 2020 17:36:58 -0230 Subject: [PATCH] Fix prefer-destructuring issues (#9263) See [`prefer-destructuring`](https://eslint.org/docs/rules/prefer-destructuring) for more information. This change enables `prefer-destructuring` and fixes the issues raised by the rule. --- .eslintrc.js | 12 +++++++ app/scripts/background.js | 10 +++--- app/scripts/contentscript.js | 2 +- app/scripts/controllers/network/network.js | 2 +- app/scripts/controllers/preferences.js | 15 ++++---- app/scripts/controllers/threebox.js | 2 +- app/scripts/controllers/transactions/index.js | 3 +- .../transactions/pending-tx-tracker.js | 2 +- .../controllers/transactions/tx-gas-utils.js | 2 +- .../transactions/tx-state-manager.js | 2 +- app/scripts/lib/account-tracker.js | 10 +++--- app/scripts/lib/cleanErrorStack.js | 2 +- app/scripts/lib/local-store.js | 4 +-- app/scripts/lib/setupSentry.js | 3 +- app/scripts/lib/typed-message-manager.js | 2 +- app/scripts/lib/util.js | 2 +- app/scripts/metamask-controller.js | 35 ++++++++++--------- app/scripts/migrations/005.js | 2 +- app/scripts/migrations/015.js | 2 +- app/scripts/migrations/016.js | 2 +- app/scripts/migrations/017.js | 2 +- app/scripts/migrations/018.js | 2 +- app/scripts/migrations/019.js | 6 ++-- app/scripts/migrations/022.js | 2 +- app/scripts/migrations/023.js | 2 +- app/scripts/migrations/024.js | 2 +- app/scripts/migrations/025.js | 2 +- app/scripts/migrations/027.js | 2 +- app/scripts/migrations/028.js | 3 +- app/scripts/migrations/030.js | 2 +- app/scripts/migrations/fail-tx.js | 2 +- development/build/scripts.js | 3 +- development/metamaskbot-build-announce.js | 7 ++-- test/e2e/ganache.js | 2 +- .../network/network-controller-test.js | 2 +- .../preferences-controller-test.js | 2 +- test/unit/migrations/026-test.js | 2 +- test/unit/ui/app/actions.spec.js | 2 +- .../app/dropdowns/network-dropdown.js | 4 +-- .../gas-modal-page-container.container.js | 2 +- .../app/menu-bar/account-options-menu.js | 2 +- ui/app/components/app/menu-droppo.js | 9 +++-- ui/app/ducks/metamask/metamask.js | 2 +- ui/app/helpers/utils/conversion-util.js | 2 +- ui/app/hooks/useCancelTransaction.js | 2 +- .../add-recipient/ens-input.component.js | 2 +- .../advanced-tab/advanced-tab.component.js | 2 +- ui/app/selectors/custom-gas.js | 4 +-- ui/app/selectors/selectors.js | 6 ++-- ui/app/selectors/transactions.js | 2 +- ui/index.js | 2 +- 51 files changed, 105 insertions(+), 99 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 682219053..cfb2e3088 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -71,6 +71,18 @@ module.exports = { 'no-template-curly-in-string': 'error', 'no-useless-catch': 'error', 'no-useless-concat': 'error', + 'prefer-destructuring': ['error', { + 'VariableDeclarator': { + 'array': false, + 'object': true, + }, + 'AssignmentExpression': { + 'array': false, + 'object': false, + }, + }, { + 'enforceForRenamedProperties': false, + }], 'prefer-rest-params': 'error', 'prefer-spread': 'error', 'radix': 'error', diff --git a/app/scripts/background.js b/app/scripts/background.js index fcf504107..b88d3b83f 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -406,11 +406,11 @@ function setupController (initState, initLangCode) { function updateBadge () { let label = '' const unapprovedTxCount = controller.txController.getUnapprovedTxCount() - const unapprovedMsgCount = controller.messageManager.unapprovedMsgCount - const unapprovedPersonalMsgCount = controller.personalMessageManager.unapprovedPersonalMsgCount - const unapprovedDecryptMsgCount = controller.decryptMessageManager.unapprovedDecryptMsgCount - const unapprovedEncryptionPublicKeyMsgCount = controller.encryptionPublicKeyManager.unapprovedEncryptionPublicKeyMsgCount - const unapprovedTypedMessagesCount = controller.typedMessageManager.unapprovedTypedMessagesCount + const { unapprovedMsgCount } = controller.messageManager + const { unapprovedPersonalMsgCount } = controller.personalMessageManager + const { unapprovedDecryptMsgCount } = controller.decryptMessageManager + const { unapprovedEncryptionPublicKeyMsgCount } = controller.encryptionPublicKeyManager + const { unapprovedTypedMessagesCount } = controller.typedMessageManager const pendingPermissionRequests = Object.keys(controller.permissionsController.permissions.state.permissionsRequests).length const waitingForUnlockCount = controller.appStateController.waitingForUnlock.length const count = unapprovedTxCount + unapprovedMsgCount + unapprovedPersonalMsgCount + unapprovedDecryptMsgCount + unapprovedEncryptionPublicKeyMsgCount + diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js index 8926f439c..4c5bcecc2 100644 --- a/app/scripts/contentscript.js +++ b/app/scripts/contentscript.js @@ -136,7 +136,7 @@ function shouldInjectProvider () { * @returns {boolean} {@code true} - if the doctype is html or if none exists */ function doctypeCheck () { - const doctype = window.document.doctype + const { doctype } = window.document if (doctype) { return doctype.name === 'html' } else { diff --git a/app/scripts/controllers/network/network.js b/app/scripts/controllers/network/network.js index 7d45cc5a4..27d7093d1 100644 --- a/app/scripts/controllers/network/network.js +++ b/app/scripts/controllers/network/network.js @@ -22,7 +22,7 @@ import { } from './enums' const env = process.env.METAMASK_ENV -const METAMASK_DEBUG = process.env.METAMASK_DEBUG +const { METAMASK_DEBUG } = process.env let defaultProviderConfigType if (process.env.IN_TEST === 'true') { diff --git a/app/scripts/controllers/preferences.js b/app/scripts/controllers/preferences.js index 436648af8..739004d93 100644 --- a/app/scripts/controllers/preferences.js +++ b/app/scripts/controllers/preferences.js @@ -178,7 +178,7 @@ export default class PreferencesController { * @param {string} methodData - Corresponding data method */ addKnownMethodData (fourBytePrefix, methodData) { - const knownMethodData = this.store.getState().knownMethodData + const { knownMethodData } = this.store.getState() knownMethodData[fourBytePrefix] = methodData this.store.updateState({ knownMethodData }) } @@ -264,8 +264,8 @@ export default class PreferencesController { * @returns {string} - the address that was removed */ removeAddress (address) { - const identities = this.store.getState().identities - const accountTokens = this.store.getState().accountTokens + const { identities } = this.store.getState() + const { accountTokens } = this.store.getState() if (!identities[address]) { throw new Error(`${address} can't be deleted cause it was not found`) } @@ -290,8 +290,7 @@ export default class PreferencesController { * */ addAddresses (addresses) { - const identities = this.store.getState().identities - const accountTokens = this.store.getState().accountTokens + const { identities, accountTokens } = this.store.getState() addresses.forEach((address) => { // skip if already exists if (identities[address]) { @@ -420,7 +419,7 @@ export default class PreferencesController { async addToken (rawAddress, symbol, decimals, image) { const address = normalizeAddress(rawAddress) const newEntry = { address, symbol, decimals } - const tokens = this.store.getState().tokens + const { tokens } = this.store.getState() const assetImages = this.getAssetImages() const previousEntry = tokens.find((token) => { return token.address === address @@ -445,7 +444,7 @@ export default class PreferencesController { * */ removeToken (rawAddress) { - const tokens = this.store.getState().tokens + const { tokens } = this.store.getState() const assetImages = this.getAssetImages() const updatedTokens = tokens.filter((token) => token.address !== rawAddress) delete assetImages[rawAddress] @@ -688,7 +687,7 @@ export default class PreferencesController { * */ _getTokenRelatedStates (selectedAddress) { - const accountTokens = this.store.getState().accountTokens + const { accountTokens } = this.store.getState() if (!selectedAddress) { // eslint-disable-next-line no-param-reassign selectedAddress = this.store.getState().selectedAddress diff --git a/app/scripts/controllers/threebox.js b/app/scripts/controllers/threebox.js index 92e4ae907..dc83f3673 100644 --- a/app/scripts/controllers/threebox.js +++ b/app/scripts/controllers/threebox.js @@ -35,7 +35,7 @@ export default class ThreeBoxController { if (origin !== '3Box') { return [] } - const isUnlocked = getKeyringControllerState().isUnlocked + const { isUnlocked } = getKeyringControllerState() const accounts = await this.keyringController.getAccounts() diff --git a/app/scripts/controllers/transactions/index.js b/app/scripts/controllers/transactions/index.js index 22ace157e..ffc8246db 100644 --- a/app/scripts/controllers/transactions/index.js +++ b/app/scripts/controllers/transactions/index.js @@ -756,8 +756,7 @@ export default class TransactionController extends EventEmitter { _setupBlockTrackerListener () { let listenersAreActive = false const latestBlockHandler = this._onLatestBlock.bind(this) - const blockTracker = this.blockTracker - const txStateManager = this.txStateManager + const { blockTracker, txStateManager } = this txStateManager.on('tx:status-update', updateSubscription) updateSubscription() diff --git a/app/scripts/controllers/transactions/pending-tx-tracker.js b/app/scripts/controllers/transactions/pending-tx-tracker.js index 8066a116f..3ae85e4fa 100644 --- a/app/scripts/controllers/transactions/pending-tx-tracker.js +++ b/app/scripts/controllers/transactions/pending-tx-tracker.js @@ -137,7 +137,7 @@ export default class PendingTransactionTracker extends EventEmitter { return this.approveTransaction(txMeta.id) } - const rawTx = txMeta.rawTx + const { rawTx } = txMeta const txHash = await this.publishTransaction(rawTx) // Increment successful tries: diff --git a/app/scripts/controllers/transactions/tx-gas-utils.js b/app/scripts/controllers/transactions/tx-gas-utils.js index 081282066..4b897b968 100644 --- a/app/scripts/controllers/transactions/tx-gas-utils.js +++ b/app/scripts/controllers/transactions/tx-gas-utils.js @@ -56,7 +56,7 @@ export default class TxGasUtil { @returns {string} - the estimated gas limit as a hex string */ async estimateTxGas (txMeta) { - const txParams = txMeta.txParams + const { txParams } = txMeta // estimate tx gas requirements return await this.query.estimateGas(txParams) diff --git a/app/scripts/controllers/transactions/tx-state-manager.js b/app/scripts/controllers/transactions/tx-state-manager.js index 5239bd60a..bbdd51872 100644 --- a/app/scripts/controllers/transactions/tx-state-manager.js +++ b/app/scripts/controllers/transactions/tx-state-manager.js @@ -178,7 +178,7 @@ export default class TransactionStateManager extends EventEmitter { const transactions = this.getFullTxList() const txCount = transactions.length - const txHistoryLimit = this.txHistoryLimit + const { txHistoryLimit } = this // checks if the length of the tx history is // longer then desired persistence limit diff --git a/app/scripts/lib/account-tracker.js b/app/scripts/lib/account-tracker.js index f84a9708b..2d97a1382 100644 --- a/app/scripts/lib/account-tracker.js +++ b/app/scripts/lib/account-tracker.js @@ -92,7 +92,7 @@ export default class AccountTracker { * */ syncWithAddresses (addresses) { - const accounts = this.store.getState().accounts + const { accounts } = this.store.getState() const locals = Object.keys(accounts) const accountsToAdd = [] @@ -121,7 +121,7 @@ export default class AccountTracker { * */ addAccounts (addresses) { - const accounts = this.store.getState().accounts + const { accounts } = this.store.getState() // add initial state for addresses addresses.forEach((address) => { accounts[address] = {} @@ -142,7 +142,7 @@ export default class AccountTracker { * */ removeAccount (addresses) { - const accounts = this.store.getState().accounts + const { accounts } = this.store.getState() // remove each state object addresses.forEach((address) => { delete accounts[address] @@ -194,7 +194,7 @@ export default class AccountTracker { * */ async _updateAccounts () { - const accounts = this.store.getState().accounts + const { accounts } = this.store.getState() const addresses = Object.keys(accounts) const currentNetwork = this.network.getNetworkState() @@ -248,7 +248,7 @@ export default class AccountTracker { * @param {*} deployedContractAddress */ async _updateAccountsViaBalanceChecker (addresses, deployedContractAddress) { - const accounts = this.store.getState().accounts + const { accounts } = this.store.getState() this.web3.setProvider(this._provider) const ethContract = this.web3.eth.contract(SINGLE_CALL_BALANCES_ABI).at(deployedContractAddress) const ethBalance = ['0x0'] diff --git a/app/scripts/lib/cleanErrorStack.js b/app/scripts/lib/cleanErrorStack.js index 5b59ff66e..46e069e8e 100644 --- a/app/scripts/lib/cleanErrorStack.js +++ b/app/scripts/lib/cleanErrorStack.js @@ -4,7 +4,7 @@ * @returns {Error} - Error with clean stack trace. */ export default function cleanErrorStack (err) { - let name = err.name + let { name } = err name = (name === undefined) ? 'Error' : String(name) let msg = err.message diff --git a/app/scripts/lib/local-store.js b/app/scripts/lib/local-store.js index a0c0a667a..5d51b5f72 100644 --- a/app/scripts/lib/local-store.js +++ b/app/scripts/lib/local-store.js @@ -49,7 +49,7 @@ export default class ExtensionStore { * @returns {Object} - the key-value map from local storage */ _get () { - const local = extension.storage.local + const { local } = extension.storage return new Promise((resolve, reject) => { local.get(null, (/** @type {any} */ result) => { const err = checkForError() @@ -69,7 +69,7 @@ export default class ExtensionStore { * @private */ _set (obj) { - const local = extension.storage.local + const { local } = extension.storage return new Promise((resolve, reject) => { local.set(obj, () => { const err = checkForError() diff --git a/app/scripts/lib/setupSentry.js b/app/scripts/lib/setupSentry.js index 02ad02d6b..b5e4f2bec 100644 --- a/app/scripts/lib/setupSentry.js +++ b/app/scripts/lib/setupSentry.js @@ -3,8 +3,7 @@ import { Dedupe, ExtraErrorData } from '@sentry/integrations' import extractEthjsErrorMessage from './extractEthjsErrorMessage' -const METAMASK_DEBUG = process.env.METAMASK_DEBUG -const METAMASK_ENVIRONMENT = process.env.METAMASK_ENVIRONMENT +const { METAMASK_DEBUG, METAMASK_ENVIRONMENT } = process.env const SENTRY_DSN_DEV = 'https://f59f3dd640d2429d9d0e2445a87ea8e1@sentry.io/273496' // This describes the subset of Redux state attached to errors sent to Sentry diff --git a/app/scripts/lib/typed-message-manager.js b/app/scripts/lib/typed-message-manager.js index 324ef6936..8c3caca2e 100644 --- a/app/scripts/lib/typed-message-manager.js +++ b/app/scripts/lib/typed-message-manager.js @@ -164,7 +164,7 @@ export default class TypedMessageManager extends EventEmitter { const validation = jsonschema.validate(data, sigUtil.TYPED_MESSAGE_SCHEMA) assert.ok(data.primaryType in data.types, `Primary type of "${data.primaryType}" has no type definition.`) assert.equal(validation.errors.length, 0, 'Signing data must conform to EIP-712 schema. See https://git.io/fNtcx.') - const chainId = data.domain.chainId + const { chainId } = data.domain // eslint-disable-next-line radix const activeChainId = parseInt(this.networkController.getNetworkState()) chainId && assert.equal(chainId, activeChainId, `Provided chainId "${chainId}" must match the active chainId "${activeChainId}"`) diff --git a/app/scripts/lib/util.js b/app/scripts/lib/util.js index 243a00b65..6d06758b3 100644 --- a/app/scripts/lib/util.js +++ b/app/scripts/lib/util.js @@ -138,7 +138,7 @@ function BnMultiplyByFraction (targetBN, numerator, denominator) { * @returns {Error|undefined} */ function checkForError () { - const lastError = extension.runtime.lastError + const { lastError } = extension.runtime if (!lastError) { return undefined } diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 656777eb2..e7d1de51d 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -406,7 +406,7 @@ export default class MetamaskController extends EventEmitter { * @returns {Object} - status */ getState () { - const vault = this.keyringController.store.getState().vault + const { vault } = this.keyringController.store.getState() const isInitialized = !!vault return { @@ -423,14 +423,16 @@ export default class MetamaskController extends EventEmitter { * @returns {Object} - Object containing API functions. */ getApi () { - const keyringController = this.keyringController - const networkController = this.networkController - const onboardingController = this.onboardingController - const alertController = this.alertController - const permissionsController = this.permissionsController - const preferencesController = this.preferencesController - const threeBoxController = this.threeBoxController - const txController = this.txController + const { + keyringController, + networkController, + onboardingController, + alertController, + permissionsController, + preferencesController, + threeBoxController, + txController, + } = this return { // etc @@ -612,7 +614,7 @@ export default class MetamaskController extends EventEmitter { try { let accounts, lastBalance - const keyringController = this.keyringController + const { keyringController } = this // clear known identities this.preferencesController.setAddresses([]) @@ -744,7 +746,7 @@ export default class MetamaskController extends EventEmitter { // transactions - let transactions = this.txController.store.getState().transactions + let { transactions } = this.txController.store.getState() // delete tx for other accounts that we're not importing transactions = transactions.filter((tx) => { const checksummedTxFrom = ethUtil.toChecksumAddress(tx.txParams.from) @@ -942,7 +944,7 @@ export default class MetamaskController extends EventEmitter { if (!primaryKeyring) { throw new Error('MetamaskController - No HD Key Tree found') } - const keyringController = this.keyringController + const { keyringController } = this const oldAccounts = await keyringController.getAccounts() const keyState = await keyringController.addNewAccount(primaryKeyring) const newAccounts = await keyringController.getAccounts() @@ -1112,7 +1114,7 @@ export default class MetamaskController extends EventEmitter { * @param {string} msgId - The id of the message to cancel. */ cancelMessage (msgId, cb) { - const messageManager = this.messageManager + const { messageManager } = this messageManager.rejectMsg(msgId) if (cb && typeof cb === 'function') { cb(null, this.getState()) @@ -1347,7 +1349,7 @@ export default class MetamaskController extends EventEmitter { async signTypedMessage (msgParams) { log.info('MetaMaskController - eth_signTypedData') const msgId = msgParams.metamaskId - const version = msgParams.version + const { version } = msgParams try { const cleanMsgParams = await this.typedMessageManager.approveMessage(msgParams) @@ -1460,7 +1462,7 @@ export default class MetamaskController extends EventEmitter { */ setupUntrustedCommunication (connectionStream, sender) { const { usePhishDetect } = this.preferencesController.store.getState() - const hostname = (new URL(sender.url)).hostname + const { hostname } = new URL(sender.url) // Check if new connection is blocked if phishing detection is on if (usePhishDetect && this.phishingController.test(hostname)) { log.debug('MetaMask - sending phishing warning for', hostname) @@ -1599,8 +1601,7 @@ export default class MetamaskController extends EventEmitter { setupProviderEngine ({ origin, location, extensionId, tabId, isInternal = false }) { // setup json rpc engine stack const engine = new RpcEngine() - const provider = this.provider - const blockTracker = this.blockTracker + const { provider, blockTracker } = this // create filter polyfill middleware const filterMiddleware = createFilterMiddleware({ provider, blockTracker }) diff --git a/app/scripts/migrations/005.js b/app/scripts/migrations/005.js index 05587c432..00f3ca552 100644 --- a/app/scripts/migrations/005.js +++ b/app/scripts/migrations/005.js @@ -27,7 +27,7 @@ export default { } function selectSubstateForKeyringController (state) { - const config = state.config + const { config } = state const newState = { ...state, KeyringController: { diff --git a/app/scripts/migrations/015.js b/app/scripts/migrations/015.js index 4ea61b7d1..de6ce94bc 100644 --- a/app/scripts/migrations/015.js +++ b/app/scripts/migrations/015.js @@ -30,7 +30,7 @@ function transformState (state) { const newState = state const { TransactionController } = newState if (TransactionController && TransactionController.transactions) { - const transactions = TransactionController.transactions + const { transactions } = TransactionController newState.TransactionController.transactions = transactions.map((txMeta) => { if (!txMeta.err) { return txMeta diff --git a/app/scripts/migrations/016.js b/app/scripts/migrations/016.js index 341658e06..dcef6f313 100644 --- a/app/scripts/migrations/016.js +++ b/app/scripts/migrations/016.js @@ -30,7 +30,7 @@ function transformState (state) { const newState = state const { TransactionController } = newState if (TransactionController && TransactionController.transactions) { - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController newState.TransactionController.transactions = transactions.map((txMeta) => { if (!txMeta.err) { diff --git a/app/scripts/migrations/017.js b/app/scripts/migrations/017.js index e39d7855d..8e43863ad 100644 --- a/app/scripts/migrations/017.js +++ b/app/scripts/migrations/017.js @@ -29,7 +29,7 @@ function transformState (state) { const newState = state const { TransactionController } = newState if (TransactionController && TransactionController.transactions) { - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController newState.TransactionController.transactions = transactions.map((txMeta) => { if (!txMeta.status === 'failed') { return txMeta diff --git a/app/scripts/migrations/018.js b/app/scripts/migrations/018.js index 7a182ab2a..c2dc39b26 100644 --- a/app/scripts/migrations/018.js +++ b/app/scripts/migrations/018.js @@ -34,7 +34,7 @@ function transformState (state) { const newState = state const { TransactionController } = newState if (TransactionController && TransactionController.transactions) { - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController newState.TransactionController.transactions = transactions.map((txMeta) => { // no history: initialize if (!txMeta.history || txMeta.history.length === 0) { diff --git a/app/scripts/migrations/019.js b/app/scripts/migrations/019.js index aa1e8a6cc..d99fa6aa8 100644 --- a/app/scripts/migrations/019.js +++ b/app/scripts/migrations/019.js @@ -32,7 +32,7 @@ function transformState (state) { const { TransactionController } = newState if (TransactionController && TransactionController.transactions) { - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController newState.TransactionController.transactions = transactions.map((txMeta, _, txList) => { if (txMeta.status !== 'submitted') { @@ -66,7 +66,7 @@ function transformState (state) { function getHighestContinuousFrom (txList, startPoint) { const nonces = txList.map((txMeta) => { - const nonce = txMeta.txParams.nonce + const { nonce } = txMeta.txParams return parseInt(nonce, 16) }) @@ -80,7 +80,7 @@ function getHighestContinuousFrom (txList, startPoint) { function getHighestNonce (txList) { const nonces = txList.map((txMeta) => { - const nonce = txMeta.txParams.nonce + const { nonce } = txMeta.txParams return parseInt(nonce || '0x0', 16) }) const highestNonce = Math.max.apply(null, nonces) diff --git a/app/scripts/migrations/022.js b/app/scripts/migrations/022.js index b986a94f4..630bc2022 100644 --- a/app/scripts/migrations/022.js +++ b/app/scripts/migrations/022.js @@ -30,7 +30,7 @@ function transformState (state) { const newState = state const { TransactionController } = newState if (TransactionController && TransactionController.transactions) { - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController newState.TransactionController.transactions = transactions.map((txMeta) => { if (txMeta.status !== 'submitted' || txMeta.submittedTime) { diff --git a/app/scripts/migrations/023.js b/app/scripts/migrations/023.js index af4ee8d45..b6f9a1038 100644 --- a/app/scripts/migrations/023.js +++ b/app/scripts/migrations/023.js @@ -31,7 +31,7 @@ function transformState (state) { const { TransactionController } = newState if (TransactionController && TransactionController.transactions) { - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController if (transactions.length <= 40) { return newState diff --git a/app/scripts/migrations/024.js b/app/scripts/migrations/024.js index 569c817c2..07257d428 100644 --- a/app/scripts/migrations/024.js +++ b/app/scripts/migrations/024.js @@ -28,7 +28,7 @@ function transformState (state) { if (!newState.TransactionController) { return newState } - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController newState.TransactionController.transactions = transactions.map((txMeta, _) => { if ( txMeta.status === 'unapproved' && diff --git a/app/scripts/migrations/025.js b/app/scripts/migrations/025.js index 1f3721d27..0f5f568ab 100644 --- a/app/scripts/migrations/025.js +++ b/app/scripts/migrations/025.js @@ -28,7 +28,7 @@ function transformState (state) { if (newState.TransactionController) { if (newState.TransactionController.transactions) { - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController newState.TransactionController.transactions = transactions.map((txMeta) => { if (txMeta.status !== 'unapproved') { return txMeta diff --git a/app/scripts/migrations/027.js b/app/scripts/migrations/027.js index dc4d0beb7..2607f03da 100644 --- a/app/scripts/migrations/027.js +++ b/app/scripts/migrations/027.js @@ -26,7 +26,7 @@ function transformState (state) { if (newState.TransactionController) { if (newState.TransactionController.transactions) { - const transactions = newState.TransactionController.transactions + const { transactions } = newState.TransactionController newState.TransactionController.transactions = transactions.filter((txMeta) => txMeta.status !== 'rejected') } } diff --git a/app/scripts/migrations/028.js b/app/scripts/migrations/028.js index 09fc18f11..522067f8b 100644 --- a/app/scripts/migrations/028.js +++ b/app/scripts/migrations/028.js @@ -26,8 +26,7 @@ function transformState (state) { if (newState.PreferencesController) { if (newState.PreferencesController.tokens && newState.PreferencesController.identities) { - const identities = newState.PreferencesController.identities - const tokens = newState.PreferencesController.tokens + const { identities, tokens } = newState.PreferencesController newState.PreferencesController.accountTokens = {} Object.keys(identities).forEach((identity) => { newState.PreferencesController.accountTokens[identity] = { 'mainnet': tokens } diff --git a/app/scripts/migrations/030.js b/app/scripts/migrations/030.js index 8b6cdeaaa..351fbb269 100644 --- a/app/scripts/migrations/030.js +++ b/app/scripts/migrations/030.js @@ -25,7 +25,7 @@ export default { function transformState (state) { const newState = state if (state.PreferencesController) { - const frequentRpcListDetail = newState.PreferencesController.frequentRpcListDetail + const { frequentRpcListDetail } = newState.PreferencesController if (frequentRpcListDetail) { frequentRpcListDetail.forEach((rpc, index) => { // eslint-disable-next-line radix diff --git a/app/scripts/migrations/fail-tx.js b/app/scripts/migrations/fail-tx.js index e5a349033..c8b5f7c36 100644 --- a/app/scripts/migrations/fail-tx.js +++ b/app/scripts/migrations/fail-tx.js @@ -20,7 +20,7 @@ function transformState (state, condition, reason) { const newState = state const { TransactionController } = newState if (TransactionController && TransactionController.transactions) { - const transactions = TransactionController.transactions + const { transactions } = TransactionController newState.TransactionController.transactions = transactions.map((txMeta) => { if (!condition(txMeta)) { diff --git a/development/build/scripts.js b/development/build/scripts.js index 1f6d2f954..4b06af86e 100644 --- a/development/build/scripts.js +++ b/development/build/scripts.js @@ -62,8 +62,7 @@ function createScriptTasks ({ browserPlatforms, livereload }) { core.prod, ) - const dev = core.dev - const testDev = core.testDev + const { dev, testDev } = core const test = composeParallel( deps.background, diff --git a/development/metamaskbot-build-announce.js b/development/metamaskbot-build-announce.js index 2414901de..a19acecc6 100755 --- a/development/metamaskbot-build-announce.js +++ b/development/metamaskbot-build-announce.js @@ -12,12 +12,11 @@ function capitalizeFirstLetter (string) { async function start () { - const GITHUB_COMMENT_TOKEN = process.env.GITHUB_COMMENT_TOKEN - const CIRCLE_PULL_REQUEST = process.env.CIRCLE_PULL_REQUEST + const { GITHUB_COMMENT_TOKEN, CIRCLE_PULL_REQUEST } = process.env console.log('CIRCLE_PULL_REQUEST', CIRCLE_PULL_REQUEST) - const CIRCLE_SHA1 = process.env.CIRCLE_SHA1 + const { CIRCLE_SHA1 } = process.env console.log('CIRCLE_SHA1', CIRCLE_SHA1) - const CIRCLE_BUILD_NUM = process.env.CIRCLE_BUILD_NUM + const { CIRCLE_BUILD_NUM } = process.env console.log('CIRCLE_BUILD_NUM', CIRCLE_BUILD_NUM) if (!CIRCLE_PULL_REQUEST) { diff --git a/test/e2e/ganache.js b/test/e2e/ganache.js index 0cfbadda3..edce5b15e 100644 --- a/test/e2e/ganache.js +++ b/test/e2e/ganache.js @@ -12,7 +12,7 @@ const defaultOptions = { class Ganache { async start (opts) { const options = { ...defaultOptions, ...opts } - const port = options.port + const { port } = options this._server = ganache.server(options) const listen = promisify(this._server.listen).bind(this._server) diff --git a/test/unit/app/controllers/network/network-controller-test.js b/test/unit/app/controllers/network/network-controller-test.js index be1c7f536..161df6170 100644 --- a/test/unit/app/controllers/network/network-controller-test.js +++ b/test/unit/app/controllers/network/network-controller-test.js @@ -53,7 +53,7 @@ describe('NetworkController', function () { it('should update provider.type', function () { networkController.initializeProvider(networkControllerProviderConfig) networkController.setProviderType('mainnet') - const type = networkController.getProviderConfig().type + const { type } = networkController.getProviderConfig() assert.equal(type, 'mainnet', 'provider type is updated') }) it('should set the network to loading', function () { diff --git a/test/unit/app/controllers/preferences-controller-test.js b/test/unit/app/controllers/preferences-controller-test.js index 5c56b0f88..ca5001e36 100644 --- a/test/unit/app/controllers/preferences-controller-test.js +++ b/test/unit/app/controllers/preferences-controller-test.js @@ -39,7 +39,7 @@ describe('preferences controller', function () { '0x7e57e2', ]) - const accountTokens = preferencesController.store.getState().accountTokens + const { accountTokens } = preferencesController.store.getState() assert.deepEqual(accountTokens, { '0xda22le': {}, diff --git a/test/unit/migrations/026-test.js b/test/unit/migrations/026-test.js index 83858c1c9..3227e3394 100644 --- a/test/unit/migrations/026-test.js +++ b/test/unit/migrations/026-test.js @@ -19,7 +19,7 @@ describe('migration #26', function () { it('should move the identities from KeyringController', function (done) { migration26.migrate(oldStorage) .then((newStorage) => { - const identities = newStorage.data.PreferencesController.identities + const { identities } = newStorage.data.PreferencesController assert.deepEqual(identities, { '0x1e77e2': { name: 'Test Account 1', address: '0x1e77e2' }, '0x7e57e2': { name: 'Test Account 2', address: '0x7e57e2' }, diff --git a/test/unit/ui/app/actions.spec.js b/test/unit/ui/app/actions.spec.js index 49bc191a5..accca3136 100644 --- a/test/unit/ui/app/actions.spec.js +++ b/test/unit/ui/app/actions.spec.js @@ -12,7 +12,7 @@ import * as actions from '../../../../ui/app/store/actions' import MetaMaskController from '../../../../app/scripts/metamask-controller' import firstTimeState from '../../localhostState' -const provider = createTestProviderTools({ scaffold: {} }).provider +const { provider } = createTestProviderTools({ scaffold: {} }) const middleware = [thunk] const defaultState = { metamask: {} } const mockStore = (state = defaultState) => configureStore(middleware)(state) diff --git a/ui/app/components/app/dropdowns/network-dropdown.js b/ui/app/components/app/dropdowns/network-dropdown.js index 223c7d566..3a95e348a 100644 --- a/ui/app/components/app/dropdowns/network-dropdown.js +++ b/ui/app/components/app/dropdowns/network-dropdown.js @@ -86,7 +86,7 @@ class NetworkDropdown extends Component { renderCustomOption (provider) { const { rpcTarget, type, ticker, nickname } = provider - const network = this.props.network + const { network } = this.props if (type !== 'rpc') { return null @@ -136,7 +136,7 @@ class NetworkDropdown extends Component { if ((rpc === 'http://localhost:8545') || currentRpcTarget) { return null } else { - const chainId = entry.chainId + const { chainId } = entry return ( { const newTotalFiat = addHexWEIsToRenderableFiat(value, customGasTotal, currentCurrency, conversionRate) - const hideBasic = state.appState.modal.modalState.props.hideBasic + const { hideBasic } = state.appState.modal.modalState.props const customGasPrice = calcCustomGasPrice(customModalGasPriceInHex) diff --git a/ui/app/components/app/menu-bar/account-options-menu.js b/ui/app/components/app/menu-bar/account-options-menu.js index 32c31b6c0..241f6dc92 100644 --- a/ui/app/components/app/menu-bar/account-options-menu.js +++ b/ui/app/components/app/menu-bar/account-options-menu.js @@ -51,7 +51,7 @@ export default function AccountOptionsMenu ({ anchorElement, onClose }) { const rpcPrefs = useSelector(getRpcPrefsForCurrentProvider) const selectedIdentity = useSelector(getSelectedIdentity) - const address = selectedIdentity.address + const { address } = selectedIdentity const isRemovable = keyring.type !== 'HD Key Tree' return ( diff --git a/ui/app/components/app/menu-droppo.js b/ui/app/components/app/menu-droppo.js index fd26a5208..e460fe118 100644 --- a/ui/app/components/app/menu-droppo.js +++ b/ui/app/components/app/menu-droppo.js @@ -17,7 +17,7 @@ export default class MenuDroppoComponent extends Component { } renderPrimary () { - const isOpen = this.props.isOpen + const { isOpen } = this.props if (!isOpen) { return null } @@ -32,8 +32,7 @@ export default class MenuDroppoComponent extends Component { } manageListeners () { - const isOpen = this.props.isOpen - const onClickOutside = this.props.onClickOutside + const { isOpen, onClickOutside } = this.props if (isOpen) { this.outsideClickHandler = onClickOutside @@ -41,7 +40,7 @@ export default class MenuDroppoComponent extends Component { } globalClickOccurred = (event) => { - const target = event.target + const { target } = event // eslint-disable-next-line react/no-find-dom-node const container = findDOMNode(this) @@ -70,7 +69,7 @@ export default class MenuDroppoComponent extends Component { render () { const { containerClassName = '', style } = this.props const speed = this.props.speed || '300ms' - const useCssTransition = this.props.useCssTransition + const { useCssTransition } = this.props const zIndex = ('zIndex' in this.props) ? this.props.zIndex : 0 this.manageListeners() diff --git a/ui/app/ducks/metamask/metamask.js b/ui/app/ducks/metamask/metamask.js index e6449a622..097afee7e 100644 --- a/ui/app/ducks/metamask/metamask.js +++ b/ui/app/ducks/metamask/metamask.js @@ -85,7 +85,7 @@ export default function reduceMetamask (state = {}, action) { } case actionConstants.SET_ACCOUNT_LABEL: { - const account = action.value.account + const { account } = action.value const name = action.value.label const id = {} id[account] = Object.assign({}, metamaskState.identities[account], { name }) diff --git a/ui/app/helpers/utils/conversion-util.js b/ui/app/helpers/utils/conversion-util.js index 784fd4e12..6991e1482 100644 --- a/ui/app/helpers/utils/conversion-util.js +++ b/ui/app/helpers/utils/conversion-util.js @@ -25,7 +25,7 @@ import BigNumber from 'bignumber.js' import ethUtil, { stripHexPrefix } from 'ethereumjs-util' -const BN = ethUtil.BN +const { BN } = ethUtil // Big Number Constants const BIG_NUMBER_WEI_MULTIPLIER = new BigNumber('1000000000000000000') diff --git a/ui/app/hooks/useCancelTransaction.js b/ui/app/hooks/useCancelTransaction.js index 4dd0cc916..4dc19bae9 100644 --- a/ui/app/hooks/useCancelTransaction.js +++ b/ui/app/hooks/useCancelTransaction.js @@ -19,7 +19,7 @@ import { getConversionRate, getSelectedAccount } from '../selectors' export function useCancelTransaction (transactionGroup) { const { primaryTransaction, initialTransaction } = transactionGroup const gasPrice = primaryTransaction.txParams?.gasPrice - const id = initialTransaction.id + const { id } = initialTransaction const dispatch = useDispatch() const selectedAccount = useSelector(getSelectedAccount) const conversionRate = useSelector(getConversionRate) diff --git a/ui/app/pages/send/send-content/add-recipient/ens-input.component.js b/ui/app/pages/send/send-content/add-recipient/ens-input.component.js index f36b95594..4607ebdbb 100644 --- a/ui/app/pages/send/send-content/add-recipient/ens-input.component.js +++ b/ui/app/pages/send/send-content/add-recipient/ens-input.component.js @@ -42,7 +42,7 @@ export default class EnsInput extends Component { } componentDidMount () { - const network = this.props.network + const { network } = this.props const networkHasEnsSupport = getNetworkEnsSupport(network) this.setState({ ensResolution: ZERO_ADDRESS }) diff --git a/ui/app/pages/settings/advanced-tab/advanced-tab.component.js b/ui/app/pages/settings/advanced-tab/advanced-tab.component.js index ec8cbbbda..898bfad18 100644 --- a/ui/app/pages/settings/advanced-tab/advanced-tab.component.js +++ b/ui/app/pages/settings/advanced-tab/advanced-tab.component.js @@ -422,7 +422,7 @@ export default class AdvancedTab extends PureComponent { handleIpfsGatewaySave () { const url = new URL(addUrlProtocolPrefix(this.state.ipfsGateway)) - const host = url.host + const { host } = url this.props.setIpfsGateway(host) } diff --git a/ui/app/selectors/custom-gas.js b/ui/app/selectors/custom-gas.js index 8c0c74ab7..f8c4ecf49 100644 --- a/ui/app/selectors/custom-gas.js +++ b/ui/app/selectors/custom-gas.js @@ -200,7 +200,7 @@ export function getRenderableBasicEstimateData (state, gasLimit) { const { showFiatInTestnets } = getPreferences(state) const isMainnet = getIsMainnet(state) const showFiat = (isMainnet || !!showFiatInTestnets) - const conversionRate = state.metamask.conversionRate + const { conversionRate } = state.metamask const currentCurrency = getCurrentCurrency(state) const { gas: { @@ -255,7 +255,7 @@ export function getRenderableEstimateDataForSmallButtonsFromGWEI (state) { const isMainnet = getIsMainnet(state) const showFiat = (isMainnet || !!showFiatInTestnets) const gasLimit = state.metamask.send.gasLimit || getCustomGasLimit(state) || '0x5208' - const conversionRate = state.metamask.conversionRate + const { conversionRate } = state.metamask const currentCurrency = getCurrentCurrency(state) const { gas: { diff --git a/ui/app/selectors/selectors.js b/ui/app/selectors/selectors.js index b759ccb9b..9be3b1adc 100644 --- a/ui/app/selectors/selectors.js +++ b/ui/app/selectors/selectors.js @@ -78,7 +78,7 @@ export function getSelectedAddress (state) { export function getSelectedIdentity (state) { const selectedAddress = getSelectedAddress(state) - const identities = state.metamask.identities + const { identities } = state.metamask return identities[selectedAddress] } @@ -88,7 +88,7 @@ export function getNumberOfAccounts (state) { } export function getNumberOfTokens (state) { - const tokens = state.metamask.tokens + const { tokens } = state.metamask return tokens ? tokens.length : 0 } @@ -157,7 +157,7 @@ export function getAssetImages (state) { } export function getAddressBook (state) { - const network = state.metamask.network + const { network } = state.metamask if (!state.metamask.addressBook[network]) { return [] } diff --git a/ui/app/selectors/transactions.js b/ui/app/selectors/transactions.js index 4faa6a91e..7d62d4979 100644 --- a/ui/app/selectors/transactions.js +++ b/ui/app/selectors/transactions.js @@ -21,7 +21,7 @@ export const incomingTxListSelector = (state) => { return [] } - const network = state.metamask.network + const { network } = state.metamask const selectedAddress = getSelectedAddress(state) return Object.values(state.metamask.incomingTransactions) .filter(({ metamaskNetworkId, txParams }) => ( diff --git a/ui/index.js b/ui/index.js index 41da33b4a..9e777ed94 100644 --- a/ui/index.js +++ b/ui/index.js @@ -75,7 +75,7 @@ async function startApp (metamaskState, backgroundConnection, opts) { } if (getEnvironmentType() === ENVIRONMENT_TYPE_POPUP) { - const origin = draftInitialState.activeTab.origin + const { origin } = draftInitialState.activeTab const permittedAccountsForCurrentTab = getPermittedAccountsForCurrentTab(draftInitialState) const selectedAddress = getSelectedAddress(draftInitialState) const unconnectedAccountAlertShownOrigins = getUnconnectedAccountAlertShown(draftInitialState)