remove exclusions for mismatched object jsdoc type casing (#15351)

feature/default_network_editable
Brad Decker 2 years ago committed by GitHub
parent e24997d67c
commit 652d631cda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      .eslintrc.jsdoc.js
  2. 28
      app/scripts/background.js
  3. 8
      app/scripts/controllers/alert.js
  4. 2
      app/scripts/controllers/app-state.js
  5. 8
      app/scripts/controllers/cached-balances.js
  6. 10
      app/scripts/controllers/detect-tokens.js
  7. 2
      app/scripts/controllers/incoming-transactions.js
  8. 2
      app/scripts/controllers/incoming-transactions.test.js
  9. 18
      app/scripts/controllers/metametrics.js
  10. 2
      app/scripts/controllers/network/network.js
  11. 4
      app/scripts/controllers/onboarding.js
  12. 24
      app/scripts/controllers/permissions/permission-log.js
  13. 6
      app/scripts/controllers/permissions/permission-log.test.js
  14. 2
      app/scripts/controllers/permissions/specifications.js
  15. 18
      app/scripts/controllers/preferences.js
  16. 4
      app/scripts/controllers/swaps.js
  17. 40
      app/scripts/controllers/transactions/index.js
  18. 10
      app/scripts/controllers/transactions/lib/tx-state-history-helpers.js
  19. 18
      app/scripts/controllers/transactions/lib/util.js
  20. 16
      app/scripts/controllers/transactions/pending-tx-tracker.js
  21. 10
      app/scripts/controllers/transactions/tx-gas-utils.js
  22. 6
      app/scripts/controllers/transactions/tx-state-manager.js
  23. 6
      app/scripts/first-time-state.js
  24. 8
      app/scripts/lib/ComposableObservableStore.js
  25. 16
      app/scripts/lib/account-tracker.js
  26. 2
      app/scripts/lib/buy-url.js
  27. 22
      app/scripts/lib/decrypt-message-manager.js
  28. 22
      app/scripts/lib/encryption-public-key-manager.js
  29. 8
      app/scripts/lib/getObjStructure.js
  30. 8
      app/scripts/lib/local-store.js
  31. 22
      app/scripts/lib/message-manager.js
  32. 6
      app/scripts/lib/migrator/index.js
  33. 2
      app/scripts/lib/network-store.js
  34. 22
      app/scripts/lib/personal-message-manager.js
  35. 4
      app/scripts/lib/rpc-method-middleware/handlers/get-provider-state.js
  36. 2
      app/scripts/lib/rpc-method-middleware/handlers/log-web3-shim-usage.js
  37. 6
      app/scripts/lib/rpc-method-middleware/handlers/watch-asset.js
  38. 26
      app/scripts/lib/typed-message-manager.js
  39. 2
      app/scripts/lib/util.js
  40. 2
      app/scripts/lockdown-more.js
  41. 74
      app/scripts/metamask-controller.js
  42. 2
      app/scripts/migrations/048.js
  43. 2
      development/build/manifest.js
  44. 2
      development/build/utils.js
  45. 2
      development/lib/retry.js
  46. 2
      shared/constants/gas.js
  47. 30
      shared/constants/metametrics.js
  48. 2
      shared/constants/tokens.js
  49. 28
      shared/constants/transaction.js
  50. 4
      shared/modules/conversion.utils.js
  51. 2
      shared/modules/hexstring-utils.js
  52. 2
      shared/modules/object.utils.js
  53. 4
      shared/modules/transaction.utils.js
  54. 4
      test/e2e/webdriver/driver.js
  55. 2
      test/e2e/webdriver/firefox.js
  56. 2
      test/lib/wait-until-called.js
  57. 30
      test/mocks/permissions.js
  58. 2
      ui/components/app/transaction-activity-log/transaction-activity-log.util.js
  59. 2
      ui/components/app/transaction-list-item/transaction-list-item.stories.js
  60. 4
      ui/components/ui/error-message/error-message.component.js
  61. 8
      ui/ducks/metamask/metamask.js
  62. 42
      ui/ducks/send/send.js
  63. 2
      ui/helpers/utils/i18n-helper.js
  64. 2
      ui/helpers/utils/permission.js
  65. 8
      ui/helpers/utils/token-util.js
  66. 6
      ui/helpers/utils/transactions.util.js
  67. 2
      ui/helpers/utils/util.js
  68. 2
      ui/hooks/gasFeeInput/useGasEstimates.js
  69. 6
      ui/hooks/gasFeeInput/useGasFeeErrors.js
  70. 2
      ui/hooks/gasFeeInput/useGasFeeInputs.js
  71. 2
      ui/hooks/gasFeeInput/useGasPriceInput.js
  72. 2
      ui/hooks/gasFeeInput/useMaxFeePerGasInput.js
  73. 2
      ui/hooks/gasFeeInput/useMaxPriorityFeePerGasInput.js
  74. 4
      ui/hooks/useCurrencyDisplay.js
  75. 2
      ui/hooks/useEthFiatAmount.js
  76. 2
      ui/hooks/useEventFragment.js
  77. 6
      ui/hooks/useGasFeeErrors.js
  78. 2
      ui/hooks/useMethodData.js
  79. 2
      ui/hooks/useOriginMetadata.js
  80. 2
      ui/hooks/useShouldShowSpeedUp.js
  81. 2
      ui/hooks/useSwappedTokenValue.js
  82. 2
      ui/hooks/useTokenData.js
  83. 2
      ui/hooks/useTokenDisplayValue.js
  84. 2
      ui/hooks/useTokenFiatAmount.js
  85. 2
      ui/hooks/useTransactionDisplayData.js
  86. 4
      ui/hooks/useUserPreferencedCurrency.js
  87. 2
      ui/pages/confirmation/confirmation.js
  88. 10
      ui/pages/confirmation/templates/index.js
  89. 20
      ui/selectors/permissions.js
  90. 24
      ui/selectors/selectors.js
  91. 12
      ui/selectors/transactions.js
  92. 4
      ui/store/actions.js

@ -14,23 +14,6 @@ module.exports = {
'jsdoc/require-returns-type': 'off', 'jsdoc/require-returns-type': 'off',
'jsdoc/require-returns': 'off', 'jsdoc/require-returns': 'off',
'jsdoc/valid-types': 'off', 'jsdoc/valid-types': 'off',
// jsdoc/check-types now checks for mismatched casing of 'Object' types
// which has a larger impact on typescript projects than javascript ones
// due to the typescript Object type. To prevent large amounts of churn
// these temporary overrides are added which will be removed and casing
// normalized in a future PR.
'jsdoc/check-types': [
'error',
{
exemptTagContexts: [
{ tag: 'property', types: ['Object', 'Object[]', 'Array<Object>'] },
{ tag: 'param', types: ['Object', 'Object[]', 'Array<Object>'] },
{ tag: 'typedef', types: ['Object', 'Object[]', 'Array<Object>'] },
{ tag: 'returns', types: ['Object', 'Object[]', 'Array<Object>'] },
{ tag: 'type', types: ['Object', 'Object[]', 'Array<Object>'] },
],
},
],
}, },
settings: { settings: {
jsdoc: { jsdoc: {

@ -114,33 +114,33 @@ if (isManifestV3()) {
* @property {boolean} isInitialized - Whether the first vault has been created. * @property {boolean} isInitialized - Whether the first vault has been created.
* @property {boolean} isUnlocked - Whether the vault is currently decrypted and accounts are available for selection. * @property {boolean} isUnlocked - Whether the vault is currently decrypted and accounts are available for selection.
* @property {boolean} isAccountMenuOpen - Represents whether the main account selection UI is currently displayed. * @property {boolean} isAccountMenuOpen - Represents whether the main account selection UI is currently displayed.
* @property {Object} identities - An object matching lower-case hex addresses to Identity objects with "address" and "name" (nickname) keys. * @property {object} identities - An object matching lower-case hex addresses to Identity objects with "address" and "name" (nickname) keys.
* @property {Object} unapprovedTxs - An object mapping transaction hashes to unapproved transactions. * @property {object} unapprovedTxs - An object mapping transaction hashes to unapproved transactions.
* @property {Array} frequentRpcList - A list of frequently used RPCs, including custom user-provided ones. * @property {Array} frequentRpcList - A list of frequently used RPCs, including custom user-provided ones.
* @property {Array} addressBook - A list of previously sent to addresses. * @property {Array} addressBook - A list of previously sent to addresses.
* @property {Object} contractExchangeRates - Info about current token prices. * @property {object} contractExchangeRates - Info about current token prices.
* @property {Array} tokens - Tokens held by the current user, including their balances. * @property {Array} tokens - Tokens held by the current user, including their balances.
* @property {Object} send - TODO: Document * @property {object} send - TODO: Document
* @property {boolean} useBlockie - Indicates preferred user identicon format. True for blockie, false for Jazzicon. * @property {boolean} useBlockie - Indicates preferred user identicon format. True for blockie, false for Jazzicon.
* @property {Object} featureFlags - An object for optional feature flags. * @property {object} featureFlags - An object for optional feature flags.
* @property {boolean} welcomeScreen - True if welcome screen should be shown. * @property {boolean} welcomeScreen - True if welcome screen should be shown.
* @property {string} currentLocale - A locale string matching the user's preferred display language. * @property {string} currentLocale - A locale string matching the user's preferred display language.
* @property {Object} provider - The current selected network provider. * @property {object} provider - The current selected network provider.
* @property {string} provider.rpcUrl - The address for the RPC API, if using an RPC API. * @property {string} provider.rpcUrl - The address for the RPC API, if using an RPC API.
* @property {string} provider.type - An identifier for the type of network selected, allows MetaMask to use custom provider strategies for known networks. * @property {string} provider.type - An identifier for the type of network selected, allows MetaMask to use custom provider strategies for known networks.
* @property {string} network - A stringified number of the current network ID. * @property {string} network - A stringified number of the current network ID.
* @property {Object} accounts - An object mapping lower-case hex addresses to objects with "balance" and "address" keys, both storing hex string values. * @property {object} accounts - An object mapping lower-case hex addresses to objects with "balance" and "address" keys, both storing hex string values.
* @property {hex} currentBlockGasLimit - The most recently seen block gas limit, in a lower case hex prefixed string. * @property {hex} currentBlockGasLimit - The most recently seen block gas limit, in a lower case hex prefixed string.
* @property {TransactionMeta[]} currentNetworkTxList - An array of transactions associated with the currently selected network. * @property {TransactionMeta[]} currentNetworkTxList - An array of transactions associated with the currently selected network.
* @property {Object} unapprovedMsgs - An object of messages pending approval, mapping a unique ID to the options. * @property {object} unapprovedMsgs - An object of messages pending approval, mapping a unique ID to the options.
* @property {number} unapprovedMsgCount - The number of messages in unapprovedMsgs. * @property {number} unapprovedMsgCount - The number of messages in unapprovedMsgs.
* @property {Object} unapprovedPersonalMsgs - An object of messages pending approval, mapping a unique ID to the options. * @property {object} unapprovedPersonalMsgs - An object of messages pending approval, mapping a unique ID to the options.
* @property {number} unapprovedPersonalMsgCount - The number of messages in unapprovedPersonalMsgs. * @property {number} unapprovedPersonalMsgCount - The number of messages in unapprovedPersonalMsgs.
* @property {Object} unapprovedEncryptionPublicKeyMsgs - An object of messages pending approval, mapping a unique ID to the options. * @property {object} unapprovedEncryptionPublicKeyMsgs - An object of messages pending approval, mapping a unique ID to the options.
* @property {number} unapprovedEncryptionPublicKeyMsgCount - The number of messages in EncryptionPublicKeyMsgs. * @property {number} unapprovedEncryptionPublicKeyMsgCount - The number of messages in EncryptionPublicKeyMsgs.
* @property {Object} unapprovedDecryptMsgs - An object of messages pending approval, mapping a unique ID to the options. * @property {object} unapprovedDecryptMsgs - An object of messages pending approval, mapping a unique ID to the options.
* @property {number} unapprovedDecryptMsgCount - The number of messages in unapprovedDecryptMsgs. * @property {number} unapprovedDecryptMsgCount - The number of messages in unapprovedDecryptMsgs.
* @property {Object} unapprovedTypedMsgs - An object of messages pending approval, mapping a unique ID to the options. * @property {object} unapprovedTypedMsgs - An object of messages pending approval, mapping a unique ID to the options.
* @property {number} unapprovedTypedMsgCount - The number of messages in unapprovedTypedMsgs. * @property {number} unapprovedTypedMsgCount - The number of messages in unapprovedTypedMsgs.
* @property {number} pendingApprovalCount - The number of pending request in the approval controller. * @property {number} pendingApprovalCount - The number of pending request in the approval controller.
* @property {string[]} keyringTypes - An array of unique keyring identifying strings, representing available strategies for creating accounts. * @property {string[]} keyringTypes - An array of unique keyring identifying strings, representing available strategies for creating accounts.
@ -304,7 +304,7 @@ async function loadStateFromPersistence() {
* Streams emitted state updates to platform-specific storage strategy. * Streams emitted state updates to platform-specific storage strategy.
* Creates platform listeners for new Dapps/Contexts, and sets up their data connections to the controller. * Creates platform listeners for new Dapps/Contexts, and sets up their data connections to the controller.
* *
* @param {Object} initState - The initial state to start the controller with, matches the state that is emitted from the controller. * @param {object} initState - The initial state to start the controller with, matches the state that is emitted from the controller.
* @param {string} initLangCode - The region code for the language preferred by the current user. * @param {string} initLangCode - The region code for the language preferred by the current user.
* @param {string} remoteSourcePort - remote application port connecting to extension. * @param {string} remoteSourcePort - remote application port connecting to extension.
* @returns {Promise} After setup is complete. * @returns {Promise} After setup is complete.
@ -361,7 +361,7 @@ function setupController(initState, initLangCode, remoteSourcePort) {
/** /**
* Assigns the given state to the versioned object (with metadata), and returns that. * Assigns the given state to the versioned object (with metadata), and returns that.
* *
* @param {Object} state - The state object as emitted by the MetaMaskController. * @param {object} state - The state object as emitted by the MetaMaskController.
* @returns {VersionedData} The state object wrapped in an object that includes a metadata key. * @returns {VersionedData} The state object wrapped in an object that includes a metadata key.
*/ */
function versionifyData(state) { function versionifyData(state) {

@ -5,16 +5,16 @@ import {
} from '../../../shared/constants/alerts'; } from '../../../shared/constants/alerts';
/** /**
* @typedef {Object} AlertControllerInitState * @typedef {object} AlertControllerInitState
* @property {Object} alertEnabledness - A map of alerts IDs to booleans, where * @property {object} alertEnabledness - A map of alerts IDs to booleans, where
* `true` indicates that the alert is enabled and shown, and `false` the opposite. * `true` indicates that the alert is enabled and shown, and `false` the opposite.
* @property {Object} unconnectedAccountAlertShownOrigins - A map of origin * @property {object} unconnectedAccountAlertShownOrigins - A map of origin
* strings to booleans indicating whether the "switch to connected" alert has * strings to booleans indicating whether the "switch to connected" alert has
* been shown (`true`) or otherwise (`false`). * been shown (`true`) or otherwise (`false`).
*/ */
/** /**
* @typedef {Object} AlertControllerOptions * @typedef {object} AlertControllerOptions
* @property {AlertControllerInitState} initState - The initial controller state * @property {AlertControllerInitState} initState - The initial controller state
*/ */

@ -5,7 +5,7 @@ import { MINUTE } from '../../../shared/constants/time';
export default class AppStateController extends EventEmitter { export default class AppStateController extends EventEmitter {
/** /**
* @param {Object} opts * @param {object} opts
*/ */
constructor(opts = {}) { constructor(opts = {}) {
const { const {

@ -1,10 +1,10 @@
import { ObservableStore } from '@metamask/obs-store'; import { ObservableStore } from '@metamask/obs-store';
/** /**
* @typedef {Object} CachedBalancesOptions * @typedef {object} CachedBalancesOptions
* @property {Object} accountTracker An {@code AccountTracker} reference * @property {object} accountTracker An {@code AccountTracker} reference
* @property {Function} getCurrentChainId A function to get the current chain id * @property {Function} getCurrentChainId A function to get the current chain id
* @property {Object} initState The initial controller state * @property {object} initState The initial controller state
*/ */
/** /**
@ -33,7 +33,7 @@ export default class CachedBalancesController {
* Updates the cachedBalances property for the current chain. Cached balances will be updated to those in the passed accounts * Updates the cachedBalances property for the current chain. Cached balances will be updated to those in the passed accounts
* if balances in the passed accounts are truthy. * if balances in the passed accounts are truthy.
* *
* @param {Object} obj - The the recently updated accounts object for the current chain * @param {object} obj - The the recently updated accounts object for the current chain
* @param obj.accounts * @param obj.accounts
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */

@ -23,7 +23,7 @@ export default class DetectTokensController {
/** /**
* Creates a DetectTokensController * Creates a DetectTokensController
* *
* @param {Object} [config] - Options to configure controller * @param {object} [config] - Options to configure controller
* @param config.interval * @param config.interval
* @param config.preferences * @param config.preferences
* @param config.network * @param config.network
@ -252,7 +252,7 @@ export default class DetectTokensController {
} }
/** /**
* @type {Object} * @type {object}
*/ */
set network(network) { set network(network) {
if (!network) { if (!network) {
@ -265,7 +265,7 @@ export default class DetectTokensController {
/** /**
* In setter when isUnlocked is updated to true, detectNewTokens and restart polling * In setter when isUnlocked is updated to true, detectNewTokens and restart polling
* *
* @type {Object} * @type {object}
*/ */
set keyringMemStore(keyringMemStore) { set keyringMemStore(keyringMemStore) {
if (!keyringMemStore) { if (!keyringMemStore) {
@ -283,7 +283,7 @@ export default class DetectTokensController {
} }
/** /**
* @type {Object} * @type {object}
*/ */
set tokenList(tokenList) { set tokenList(tokenList) {
if (!tokenList) { if (!tokenList) {
@ -295,7 +295,7 @@ export default class DetectTokensController {
/** /**
* Internal isActive state * Internal isActive state
* *
* @type {Object} * @type {object}
*/ */
get isActive() { get isActive() {
return this.isOpen && this.isUnlocked; return this.isOpen && this.isUnlocked;

@ -30,7 +30,7 @@ const fetchWithTimeout = getFetchWithTimeout();
* *
* Note that this is not an exhaustive type definiton; only the properties we use are defined * Note that this is not an exhaustive type definiton; only the properties we use are defined
* *
* @typedef {Object} EtherscanTransaction * @typedef {object} EtherscanTransaction
* @property {string} blockNumber - The number of the block this transaction was found in, in decimal * @property {string} blockNumber - The number of the block this transaction was found in, in decimal
* @property {string} from - The hex-prefixed address of the sender * @property {string} from - The hex-prefixed address of the sender
* @property {string} gas - The gas limit, in decimal GWEI * @property {string} gas - The gas limit, in decimal GWEI

@ -104,7 +104,7 @@ function getMockBlockTracker() {
* Returns a transaction object matching the expected format returned * Returns a transaction object matching the expected format returned
* by the Etherscan API * by the Etherscan API
* *
* @param {Object} [params] - options bag * @param {object} [params] - options bag
* @param {string} [params.toAddress] - The hex-prefixed address of the recipient * @param {string} [params.toAddress] - The hex-prefixed address of the recipient
* @param {number} [params.blockNumber] - The block number for the transaction * @param {number} [params.blockNumber] - The block number for the transaction
* @param {boolean} [params.useEIP1559] - Use EIP-1559 gas fields * @param {boolean} [params.useEIP1559] - Use EIP-1559 gas fields

@ -44,7 +44,7 @@ const exceptionsToFilter = {
*/ */
/** /**
* @typedef {Object} MetaMetricsControllerState * @typedef {object} MetaMetricsControllerState
* @property {string} [metaMetricsId] - The user's metaMetricsId that will be * @property {string} [metaMetricsId] - The user's metaMetricsId that will be
* attached to all non-anonymized event payloads * attached to all non-anonymized event payloads
* @property {boolean} [participateInMetaMetrics] - The user's preference for * @property {boolean} [participateInMetaMetrics] - The user's preference for
@ -57,9 +57,9 @@ const exceptionsToFilter = {
export default class MetaMetricsController { export default class MetaMetricsController {
/** /**
* @param {object} options * @param {object} options
* @param {Object} options.segment - an instance of analytics-node for tracking * @param {object} options.segment - an instance of analytics-node for tracking
* events that conform to the new MetaMetrics tracking plan. * events that conform to the new MetaMetrics tracking plan.
* @param {Object} options.preferencesStore - The preferences controller store, used * @param {object} options.preferencesStore - The preferences controller store, used
* to access and subscribe to preferences that will be attached to events * to access and subscribe to preferences that will be attached to events
* @param {Function} options.onNetworkDidChange - Used to attach a listener to the * @param {Function} options.onNetworkDidChange - Used to attach a listener to the
* networkDidChange event emitted by the networkController * networkDidChange event emitted by the networkController
@ -295,7 +295,7 @@ export default class MetaMetricsController {
* Calls this._identify with validated metaMetricsId and user traits if user is participating * Calls this._identify with validated metaMetricsId and user traits if user is participating
* in the MetaMetrics analytics program * in the MetaMetrics analytics program
* *
* @param {Object} userTraits * @param {object} userTraits
*/ */
identify(userTraits) { identify(userTraits) {
const { metaMetricsId, participateInMetaMetrics } = this.state; const { metaMetricsId, participateInMetaMetrics } = this.state;
@ -604,8 +604,8 @@ export default class MetaMetricsController {
* Returns a new object of all valid user traits. For dates, we transform them into ISO-8601 timestamp strings. * Returns a new object of all valid user traits. For dates, we transform them into ISO-8601 timestamp strings.
* *
* @see {@link https://segment.com/docs/connections/spec/common/#timestamps} * @see {@link https://segment.com/docs/connections/spec/common/#timestamps}
* @param {Object} userTraits * @param {object} userTraits
* @returns {Object} * @returns {object}
*/ */
_buildValidTraits(userTraits) { _buildValidTraits(userTraits) {
return Object.entries(userTraits).reduce((validTraits, [key, value]) => { return Object.entries(userTraits).reduce((validTraits, [key, value]) => {
@ -626,7 +626,7 @@ export default class MetaMetricsController {
* Returns an array of all of the collectibles/NFTs the user * Returns an array of all of the collectibles/NFTs the user
* possesses across all networks and accounts. * possesses across all networks and accounts.
* *
* @param {Object} allCollectibles * @param {object} allCollectibles
* @returns {[]} * @returns {[]}
*/ */
_getAllNFTsFlattened = memoize((allCollectibles = {}) => { _getAllNFTsFlattened = memoize((allCollectibles = {}) => {
@ -639,7 +639,7 @@ export default class MetaMetricsController {
* Returns the number of unique collectible/NFT addresses the user * Returns the number of unique collectible/NFT addresses the user
* possesses across all networks and accounts. * possesses across all networks and accounts.
* *
* @param {Object} allCollectibles * @param {object} allCollectibles
* @returns {number} * @returns {number}
*/ */
_getAllUniqueNFTAddressesLength(allCollectibles = {}) { _getAllUniqueNFTAddressesLength(allCollectibles = {}) {
@ -668,7 +668,7 @@ export default class MetaMetricsController {
* *
* @see {@link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#identify} * @see {@link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#identify}
* @private * @private
* @param {Object} userTraits * @param {object} userTraits
*/ */
_identify(userTraits) { _identify(userTraits) {
const { metaMetricsId } = this.state; const { metaMetricsId } = this.state;

@ -141,7 +141,7 @@ export default class NetworkController extends EventEmitter {
/** /**
* Method to return the latest block for the current network * Method to return the latest block for the current network
* *
* @returns {Object} Block header * @returns {object} Block header
*/ */
getLatestBlock() { getLatestBlock() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

@ -2,13 +2,13 @@ import { ObservableStore } from '@metamask/obs-store';
import log from 'loglevel'; import log from 'loglevel';
/** /**
* @typedef {Object} InitState * @typedef {object} InitState
* @property {boolean} seedPhraseBackedUp Indicates whether the user has completed the seed phrase backup challenge * @property {boolean} seedPhraseBackedUp Indicates whether the user has completed the seed phrase backup challenge
* @property {boolean} completedOnboarding Indicates whether the user has completed the onboarding flow * @property {boolean} completedOnboarding Indicates whether the user has completed the onboarding flow
*/ */
/** /**
* @typedef {Object} OnboardingOptions * @typedef {object} OnboardingOptions
* @property {InitState} initState The initial controller state * @property {InitState} initState The initial controller state
*/ */

@ -27,7 +27,7 @@ export class PermissionLogController {
/** /**
* Get the restricted method activity log. * Get the restricted method activity log.
* *
* @returns {Array<Object>} The activity log. * @returns {Array<object>} The activity log.
*/ */
getActivityLog() { getActivityLog() {
return this.store.getState().permissionActivityLog; return this.store.getState().permissionActivityLog;
@ -36,7 +36,7 @@ export class PermissionLogController {
/** /**
* Update the restricted method activity log. * Update the restricted method activity log.
* *
* @param {Array<Object>} logs - The new activity log array. * @param {Array<object>} logs - The new activity log array.
*/ */
updateActivityLog(logs) { updateActivityLog(logs) {
this.store.updateState({ permissionActivityLog: logs }); this.store.updateState({ permissionActivityLog: logs });
@ -45,7 +45,7 @@ export class PermissionLogController {
/** /**
* Get the permission history log. * Get the permission history log.
* *
* @returns {Object} The permissions history log. * @returns {object} The permissions history log.
*/ */
getHistory() { getHistory() {
return this.store.getState().permissionHistory; return this.store.getState().permissionHistory;
@ -54,7 +54,7 @@ export class PermissionLogController {
/** /**
* Update the permission history log. * Update the permission history log.
* *
* @param {Object} history - The new permissions history log object. * @param {object} history - The new permissions history log object.
*/ */
updateHistory(history) { updateHistory(history) {
this.store.updateState({ permissionHistory: history }); this.store.updateState({ permissionHistory: history });
@ -146,7 +146,7 @@ export class PermissionLogController {
/** /**
* Creates and commits an activity log entry, without response data. * Creates and commits an activity log entry, without response data.
* *
* @param {Object} request - The request object. * @param {object} request - The request object.
* @param {boolean} isInternal - Whether the request is internal. * @param {boolean} isInternal - Whether the request is internal.
*/ */
logRequest(request, isInternal) { logRequest(request, isInternal) {
@ -169,8 +169,8 @@ export class PermissionLogController {
* Adds response data to an existing activity log entry. * Adds response data to an existing activity log entry.
* Entry assumed already committed (i.e., in the log). * Entry assumed already committed (i.e., in the log).
* *
* @param {Object} entry - The entry to add a response to. * @param {object} entry - The entry to add a response to.
* @param {Object} response - The response object. * @param {object} response - The response object.
* @param {number} time - Output from Date.now() * @param {number} time - Output from Date.now()
*/ */
logResponse(entry, response, time) { logResponse(entry, response, time) {
@ -190,7 +190,7 @@ export class PermissionLogController {
* Commit a new entry to the activity log. * Commit a new entry to the activity log.
* Removes the oldest entry from the log if it exceeds the log limit. * Removes the oldest entry from the log if it exceeds the log limit.
* *
* @param {Object} entry - The activity log entry. * @param {object} entry - The activity log entry.
*/ */
commitNewActivity(entry) { commitNewActivity(entry) {
const logs = this.getActivityLog(); const logs = this.getActivityLog();
@ -277,7 +277,7 @@ export class PermissionLogController {
* with the same key (permission name). * with the same key (permission name).
* *
* @param {string} origin - The requesting origin. * @param {string} origin - The requesting origin.
* @param {Object} newEntries - The new entries to commit. * @param {object} newEntries - The new entries to commit.
*/ */
commitNewHistory(origin, newEntries) { commitNewHistory(origin, newEntries) {
// a simple merge updates most permissions // a simple merge updates most permissions
@ -318,7 +318,7 @@ export class PermissionLogController {
/** /**
* Get all requested methods from a permissions request. * Get all requested methods from a permissions request.
* *
* @param {Object} request - The request object. * @param {object} request - The request object.
* @returns {Array<string>} The names of the requested permissions. * @returns {Array<string>} The names of the requested permissions.
*/ */
getRequestedMethods(request) { getRequestedMethods(request) {
@ -337,7 +337,7 @@ export class PermissionLogController {
* Get the permitted accounts from an eth_accounts permissions object. * Get the permitted accounts from an eth_accounts permissions object.
* Returns an empty array if the permission is not eth_accounts. * Returns an empty array if the permission is not eth_accounts.
* *
* @param {Object} perm - The permissions object. * @param {object} perm - The permissions object.
* @returns {Array<string>} The permitted accounts. * @returns {Array<string>} The permitted accounts.
*/ */
getAccountsFromPermission(perm) { getAccountsFromPermission(perm) {
@ -367,7 +367,7 @@ export class PermissionLogController {
* *
* @param {Array<string>} accounts - An array of addresses. * @param {Array<string>} accounts - An array of addresses.
* @param {number} time - A time, e.g. Date.now(). * @param {number} time - A time, e.g. Date.now().
* @returns {Object} A string:number map of addresses to time. * @returns {object} A string:number map of addresses to time.
*/ */
function getAccountToTimeMap(accounts, time) { function getAccountToTimeMap(accounts, time) {
return accounts.reduce((acc, account) => ({ ...acc, [account]: time }), {}); return accounts.reduce((acc, account) => ({ ...acc, [account]: time }), {});

@ -639,9 +639,9 @@ describe('PermissionLogController', () => {
* Validates an activity log entry with respect to a request, response, and * Validates an activity log entry with respect to a request, response, and
* relevant metadata. * relevant metadata.
* *
* @param {Object} entry - The activity log entry to validate. * @param {object} entry - The activity log entry to validate.
* @param {Object} req - The request that generated the entry. * @param {object} req - The request that generated the entry.
* @param {Object} [res] - The response for the request, if any. * @param {object} [res] - The response for the request, if any.
* @param {'restricted'|'internal'} methodType - The method log controller method type of the request. * @param {'restricted'|'internal'} methodType - The method log controller method type of the request.
* @param {boolean} success - Whether the request succeeded or not. * @param {boolean} success - Whether the request succeeded or not.
*/ */

@ -31,7 +31,7 @@ const CaveatFactories = Object.freeze({
/** /**
* A PreferencesController identity object. * A PreferencesController identity object.
* *
* @typedef {Object} Identity * @typedef {object} Identity
* @property {string} address - The address of the identity. * @property {string} address - The address of the identity.
* @property {string} name - The name of the identity. * @property {string} name - The name of the identity.
* @property {number} [lastSelected] - Unix timestamp of when the identity was * @property {number} [lastSelected] - Unix timestamp of when the identity was

@ -14,17 +14,17 @@ import { NETWORK_EVENTS } from './network';
export default class PreferencesController { export default class PreferencesController {
/** /**
* *
* @typedef {Object} PreferencesController * @typedef {object} PreferencesController
* @param {Object} opts - Overrides the defaults for the initial state of this.store * @param {object} opts - Overrides the defaults for the initial state of this.store
* @property {Object} store The stored object containing a users preferences, stored in local storage * @property {object} store The stored object containing a users preferences, stored in local storage
* @property {Array} store.frequentRpcList A list of custom rpcs to provide the user * @property {Array} store.frequentRpcList A list of custom rpcs to provide the user
* @property {boolean} store.useBlockie The users preference for blockie identicons within the UI * @property {boolean} store.useBlockie The users preference for blockie identicons within the UI
* @property {boolean} store.useNonceField The users preference for nonce field within the UI * @property {boolean} store.useNonceField The users preference for nonce field within the UI
* @property {Object} store.featureFlags A key-boolean map, where keys refer to features and booleans to whether the * @property {object} store.featureFlags A key-boolean map, where keys refer to features and booleans to whether the
* user wishes to see that feature. * user wishes to see that feature.
* *
* Feature flags can be set by the global function `setPreference(feature, enabled)`, and so should not expose any sensitive behavior. * Feature flags can be set by the global function `setPreference(feature, enabled)`, and so should not expose any sensitive behavior.
* @property {Object} store.knownMethodData Contains all data methods known by the user * @property {object} store.knownMethodData Contains all data methods known by the user
* @property {string} store.currentLocale The preferred language locale key * @property {string} store.currentLocale The preferred language locale key
* @property {string} store.selectedAddress A hex string that matches the currently selected address in the app * @property {string} store.selectedAddress A hex string that matches the currently selected address in the app
*/ */
@ -376,12 +376,12 @@ export default class PreferencesController {
/** /**
* updates custom RPC details * updates custom RPC details
* *
* @param {Object} newRpcDetails - Options bag. * @param {object} newRpcDetails - Options bag.
* @param {string} newRpcDetails.rpcUrl - The RPC url to add to frequentRpcList. * @param {string} newRpcDetails.rpcUrl - The RPC url to add to frequentRpcList.
* @param {string} newRpcDetails.chainId - The chainId of the selected network. * @param {string} newRpcDetails.chainId - The chainId of the selected network.
* @param {string} [newRpcDetails.ticker] - Optional ticker symbol of the selected network. * @param {string} [newRpcDetails.ticker] - Optional ticker symbol of the selected network.
* @param {string} [newRpcDetails.nickname] - Optional nickname of the selected network. * @param {string} [newRpcDetails.nickname] - Optional nickname of the selected network.
* @param {Object} [newRpcDetails.rpcPrefs] - Optional RPC preferences, such as the block explorer URL * @param {object} [newRpcDetails.rpcPrefs] - Optional RPC preferences, such as the block explorer URL
*/ */
async updateRpc(newRpcDetails) { async updateRpc(newRpcDetails) {
const rpcList = this.getFrequentRpcListDetail(); const rpcList = this.getFrequentRpcListDetail();
@ -456,7 +456,7 @@ export default class PreferencesController {
* @param {string} chainId - The chainId of the selected network. * @param {string} chainId - The chainId of the selected network.
* @param {string} [ticker] - Ticker symbol of the selected network. * @param {string} [ticker] - Ticker symbol of the selected network.
* @param {string} [nickname] - Nickname of the selected network. * @param {string} [nickname] - Nickname of the selected network.
* @param {Object} [rpcPrefs] - Optional RPC preferences, such as the block explorer URL * @param {object} [rpcPrefs] - Optional RPC preferences, such as the block explorer URL
*/ */
addToFrequentRpcList( addToFrequentRpcList(
rpcUrl, rpcUrl,
@ -550,7 +550,7 @@ export default class PreferencesController {
/** /**
* A getter for the `preferences` property * A getter for the `preferences` property
* *
* @returns {Object} A key-boolean map of user-selected preferences. * @returns {object} A key-boolean map of user-selected preferences.
*/ */
getPreferences() { getPreferences() {
return this.store.getState().preferences; return this.store.getState().preferences;

@ -883,7 +883,7 @@ export default class SwapsController {
* Calculates the median overallValueOfQuote of a sample of quotes. * Calculates the median overallValueOfQuote of a sample of quotes.
* *
* @param {Array} _quotes - A sample of quote objects with overallValueOfQuote, ethFee, metaMaskFeeInEth, and ethValueOfTokens properties * @param {Array} _quotes - A sample of quote objects with overallValueOfQuote, ethFee, metaMaskFeeInEth, and ethValueOfTokens properties
* @returns {Object} An object with the ethValueOfTokens, ethFee, and metaMaskFeeInEth of the quote with the median overallValueOfQuote * @returns {object} An object with the ethValueOfTokens, ethFee, and metaMaskFeeInEth of the quote with the median overallValueOfQuote
*/ */
function getMedianEthValueQuote(_quotes) { function getMedianEthValueQuote(_quotes) {
if (!Array.isArray(_quotes) || _quotes.length === 0) { if (!Array.isArray(_quotes) || _quotes.length === 0) {
@ -960,7 +960,7 @@ function getMedianEthValueQuote(_quotes) {
* *
* @param {Array} quotes - A sample of quote objects with overallValueOfQuote, ethFee, metaMaskFeeInEth and * @param {Array} quotes - A sample of quote objects with overallValueOfQuote, ethFee, metaMaskFeeInEth and
* ethValueOfTokens properties * ethValueOfTokens properties
* @returns {Object} An object with the arithmetic mean each of the ethFee, metaMaskFeeInEth and ethValueOfTokens of * @returns {object} An object with the arithmetic mean each of the ethFee, metaMaskFeeInEth and ethValueOfTokens of
* the passed quote objects * the passed quote objects
*/ */
function meansOfQuotesFeesAndValue(quotes) { function meansOfQuotesFeesAndValue(quotes) {

@ -85,7 +85,7 @@ const VALID_UNAPPROVED_TRANSACTION_TYPES = [
const METRICS_STATUS_FAILED = 'failed on-chain'; const METRICS_STATUS_FAILED = 'failed on-chain';
/** /**
* @typedef {Object} CustomGasSettings * @typedef {object} CustomGasSettings
* @property {string} [gas] - The gas limit to use for the transaction * @property {string} [gas] - The gas limit to use for the transaction
* @property {string} [gasPrice] - The gasPrice to use for a legacy transaction * @property {string} [gasPrice] - The gasPrice to use for a legacy transaction
* @property {string} [maxFeePerGas] - The maximum amount to pay per gas on a * @property {string} [maxFeePerGas] - The maximum amount to pay per gas on a
@ -109,16 +109,16 @@ const METRICS_STATUS_FAILED = 'failed on-chain';
* - nonceTracker * - nonceTracker
* calculating nonces * calculating nonces
* *
* @param {Object} opts * @param {object} opts
* @param {Object} opts.initState - initial transaction list default is an empty array * @param {object} opts.initState - initial transaction list default is an empty array
* @param {Object} opts.networkStore - an observable store for network number * @param {object} opts.networkStore - an observable store for network number
* @param {Object} opts.blockTracker - An instance of eth-blocktracker * @param {object} opts.blockTracker - An instance of eth-blocktracker
* @param {Object} opts.provider - A network provider. * @param {object} opts.provider - A network provider.
* @param {Function} opts.signTransaction - function the signs an @ethereumjs/tx * @param {Function} opts.signTransaction - function the signs an @ethereumjs/tx
* @param {Object} opts.getPermittedAccounts - get accounts that an origin has permissions for * @param {object} opts.getPermittedAccounts - get accounts that an origin has permissions for
* @param {Function} opts.signTransaction - ethTx signer that returns a rawTx * @param {Function} opts.signTransaction - ethTx signer that returns a rawTx
* @param {number} [opts.txHistoryLimit] - number *optional* for limiting how many transactions are in state * @param {number} [opts.txHistoryLimit] - number *optional* for limiting how many transactions are in state
* @param {Object} opts.preferencesStore * @param {object} opts.preferencesStore
*/ */
export default class TransactionController extends EventEmitter { export default class TransactionController extends EventEmitter {
@ -313,8 +313,8 @@ export default class TransactionController extends EventEmitter {
* Add a new unapproved transaction to the pipeline * Add a new unapproved transaction to the pipeline
* *
* @returns {Promise<string>} the hash of the transaction after being submitted to the network * @returns {Promise<string>} the hash of the transaction after being submitted to the network
* @param {Object} txParams - txParams for the transaction * @param {object} txParams - txParams for the transaction
* @param {Object} opts - with the key origin to put the origin on the txMeta * @param {object} opts - with the key origin to put the origin on the txMeta
*/ */
async newUnapprovedTransaction(txParams, opts = {}) { async newUnapprovedTransaction(txParams, opts = {}) {
log.debug( log.debug(
@ -802,7 +802,7 @@ export default class TransactionController extends EventEmitter {
/** /**
* Adds the tx gas defaults: gas && gasPrice * Adds the tx gas defaults: gas && gasPrice
* *
* @param {Object} txMeta - the txMeta object * @param {object} txMeta - the txMeta object
* @param getCodeResponse * @param getCodeResponse
* @returns {Promise<object>} resolves with txMeta * @returns {Promise<object>} resolves with txMeta
*/ */
@ -945,7 +945,7 @@ export default class TransactionController extends EventEmitter {
/** /**
* Gets default gas fees, or returns `undefined` if gas fees are already set * Gets default gas fees, or returns `undefined` if gas fees are already set
* *
* @param {Object} txMeta - The txMeta object * @param {object} txMeta - The txMeta object
* @param eip1559Compatibility * @param eip1559Compatibility
* @returns {Promise<string|undefined>} The default gas price * @returns {Promise<string|undefined>} The default gas price
*/ */
@ -1005,7 +1005,7 @@ export default class TransactionController extends EventEmitter {
/** /**
* Gets default gas limit, or debug information about why gas estimate failed. * Gets default gas limit, or debug information about why gas estimate failed.
* *
* @param {Object} txMeta - The txMeta object * @param {object} txMeta - The txMeta object
* @param {string} getCodeResponse - The transaction category code response, used for debugging purposes * @param {string} getCodeResponse - The transaction category code response, used for debugging purposes
* @returns {Promise<object>} Object containing the default gas limit, or the simulation failure object * @returns {Promise<object>} Object containing the default gas limit, or the simulation failure object
*/ */
@ -1230,7 +1230,7 @@ export default class TransactionController extends EventEmitter {
/** /**
* updates the txMeta in the txStateManager * updates the txMeta in the txStateManager
* *
* @param {Object} txMeta - the updated txMeta * @param {object} txMeta - the updated txMeta
*/ */
async updateTransaction(txMeta) { async updateTransaction(txMeta) {
this.txStateManager.updateTransaction( this.txStateManager.updateTransaction(
@ -1242,7 +1242,7 @@ export default class TransactionController extends EventEmitter {
/** /**
* updates and approves the transaction * updates and approves the transaction
* *
* @param {Object} txMeta * @param {object} txMeta
*/ */
async updateAndApproveTransaction(txMeta) { async updateAndApproveTransaction(txMeta) {
this.txStateManager.updateTransaction( this.txStateManager.updateTransaction(
@ -1689,7 +1689,7 @@ export default class TransactionController extends EventEmitter {
// //
/** maps methods for convenience*/ /** maps methods for convenience*/
_mapMethods() { _mapMethods() {
/** @returns {Object} the state in transaction controller */ /** @returns {object} the state in transaction controller */
this.getState = () => this.memStore.getState(); this.getState = () => this.memStore.getState();
/** @returns {string|number} the network number stored in networkStore */ /** @returns {string|number} the network number stored in networkStore */
@ -2147,8 +2147,8 @@ export default class TransactionController extends EventEmitter {
* @param {TransactionMeta} txMeta - Transaction meta object * @param {TransactionMeta} txMeta - Transaction meta object
* @param {TransactionMetaMetricsEventString} event - The event type that * @param {TransactionMetaMetricsEventString} event - The event type that
* triggered fragment creation * triggered fragment creation
* @param {Object} properties - properties to include in the fragment * @param {object} properties - properties to include in the fragment
* @param {Object} [sensitiveProperties] - sensitive properties to include in * @param {object} [sensitiveProperties] - sensitive properties to include in
* the fragment * the fragment
*/ */
_createTransactionEventFragment( _createTransactionEventFragment(
@ -2261,9 +2261,9 @@ export default class TransactionController extends EventEmitter {
* object and uses them to create and send metrics for various transaction * object and uses them to create and send metrics for various transaction
* events. * events.
* *
* @param {Object} txMeta - the txMeta object * @param {object} txMeta - the txMeta object
* @param {TransactionMetaMetricsEventString} event - the name of the transaction event * @param {TransactionMetaMetricsEventString} event - the name of the transaction event
* @param {Object} extraParams - optional props and values to include in sensitiveProperties * @param {object} extraParams - optional props and values to include in sensitiveProperties
*/ */
async _trackTransactionMetricsEvent(txMeta, event, extraParams = {}) { async _trackTransactionMetricsEvent(txMeta, event, extraParams = {}) {
if (!txMeta) { if (!txMeta) {

@ -28,8 +28,8 @@ export function migrateFromSnapshotsToDiffs(longHistory) {
* value * value
* with the first entry having the note and a timestamp when the change took place * with the first entry having the note and a timestamp when the change took place
* *
* @param {Object} previousState - the previous state of the object * @param {object} previousState - the previous state of the object
* @param {Object} newState - the update object * @param {object} newState - the update object
* @param {string} [note] - a optional note for the state change * @param {string} [note] - a optional note for the state change
* @returns {Array} * @returns {Array}
*/ */
@ -49,7 +49,7 @@ export function generateHistoryEntry(previousState, newState, note) {
* Recovers previous txMeta state obj * Recovers previous txMeta state obj
* *
* @param _shortHistory * @param _shortHistory
* @returns {Object} * @returns {object}
*/ */
export function replayHistory(_shortHistory) { export function replayHistory(_shortHistory) {
const shortHistory = cloneDeep(_shortHistory); const shortHistory = cloneDeep(_shortHistory);
@ -61,8 +61,8 @@ export function replayHistory(_shortHistory) {
/** /**
* Snapshot {@code txMeta} * Snapshot {@code txMeta}
* *
* @param {Object} txMeta - the tx metadata object * @param {object} txMeta - the tx metadata object
* @returns {Object} a deep clone without history * @returns {object} a deep clone without history
*/ */
export function snapshotFromTxMeta(txMeta) { export function snapshotFromTxMeta(txMeta) {
const shallow = { ...txMeta }; const shallow = { ...txMeta };

@ -32,10 +32,10 @@ export function normalizeAndValidateTxParams(txParams, lowerCase = true) {
/** /**
* Normalizes the given txParams * Normalizes the given txParams
* *
* @param {Object} txParams - The transaction params * @param {object} txParams - The transaction params
* @param {boolean} [lowerCase] - Whether to lowercase the 'to' address. * @param {boolean} [lowerCase] - Whether to lowercase the 'to' address.
* Default: true * Default: true
* @returns {Object} the normalized tx params * @returns {object} the normalized tx params
*/ */
export function normalizeTxParams(txParams, lowerCase = true) { export function normalizeTxParams(txParams, lowerCase = true) {
// apply only keys in the normalizers // apply only keys in the normalizers
@ -52,7 +52,7 @@ export function normalizeTxParams(txParams, lowerCase = true) {
* Given two fields, ensure that the second field is not included in txParams, * Given two fields, ensure that the second field is not included in txParams,
* and if it is throw an invalidParams error. * and if it is throw an invalidParams error.
* *
* @param {Object} txParams - the transaction parameters object * @param {object} txParams - the transaction parameters object
* @param {string} fieldBeingValidated - the current field being validated * @param {string} fieldBeingValidated - the current field being validated
* @param {string} mutuallyExclusiveField - the field to ensure is not provided * @param {string} mutuallyExclusiveField - the field to ensure is not provided
* @throws {ethErrors.rpc.invalidParams} Throws if mutuallyExclusiveField is * @throws {ethErrors.rpc.invalidParams} Throws if mutuallyExclusiveField is
@ -74,7 +74,7 @@ function ensureMutuallyExclusiveFieldsNotProvided(
* Ensures that the provided value for field is a string, throws an * Ensures that the provided value for field is a string, throws an
* invalidParams error if field is not a string. * invalidParams error if field is not a string.
* *
* @param {Object} txParams - the transaction parameters object * @param {object} txParams - the transaction parameters object
* @param {string} field - the current field being validated * @param {string} field - the current field being validated
* @throws {ethErrors.rpc.invalidParams} Throws if field is not a string * @throws {ethErrors.rpc.invalidParams} Throws if field is not a string
*/ */
@ -91,7 +91,7 @@ function ensureFieldIsString(txParams, field) {
* given field, if it is provided. If types do not match throws an * given field, if it is provided. If types do not match throws an
* invalidParams error. * invalidParams error.
* *
* @param {Object} txParams - the transaction parameters object * @param {object} txParams - the transaction parameters object
* @param {'gasPrice' | 'maxFeePerGas' | 'maxPriorityFeePerGas'} field - the * @param {'gasPrice' | 'maxFeePerGas' | 'maxPriorityFeePerGas'} field - the
* current field being validated * current field being validated
* @throws {ethErrors.rpc.invalidParams} Throws if type does not match the * @throws {ethErrors.rpc.invalidParams} Throws if type does not match the
@ -126,7 +126,7 @@ function ensureProperTransactionEnvelopeTypeProvided(txParams, field) {
/** /**
* Validates the given tx parameters * Validates the given tx parameters
* *
* @param {Object} txParams - the tx params * @param {object} txParams - the tx params
* @param {boolean} eip1559Compatibility - whether or not the current network supports EIP-1559 transactions * @param {boolean} eip1559Compatibility - whether or not the current network supports EIP-1559 transactions
* @throws {Error} if the tx params contains invalid fields * @throws {Error} if the tx params contains invalid fields
*/ */
@ -227,7 +227,7 @@ export function validateTxParams(txParams, eip1559Compatibility = true) {
/** /**
* Validates the {@code from} field in the given tx params * Validates the {@code from} field in the given tx params
* *
* @param {Object} txParams * @param {object} txParams
* @throws {Error} if the from address isn't valid * @throws {Error} if the from address isn't valid
*/ */
export function validateFrom(txParams) { export function validateFrom(txParams) {
@ -244,8 +244,8 @@ export function validateFrom(txParams) {
/** /**
* Validates the {@code to} field in the given tx params * Validates the {@code to} field in the given tx params
* *
* @param {Object} txParams - the tx params * @param {object} txParams - the tx params
* @returns {Object} the tx params * @returns {object} the tx params
* @throws {Error} if the recipient is invalid OR there isn't tx data * @throws {Error} if the recipient is invalid OR there isn't tx data
*/ */
export function validateRecipient(txParams) { export function validateRecipient(txParams) {

@ -29,14 +29,14 @@ export default class PendingTransactionTracker extends EventEmitter {
droppedBlocksBufferByHash = new Map(); droppedBlocksBufferByHash = new Map();
/** /**
* @param {Object} config - Configuration. * @param {object} config - Configuration.
* @param {Function} config.approveTransaction - Approves a transaction. * @param {Function} config.approveTransaction - Approves a transaction.
* @param {Function} config.confirmTransaction - Set a transaction as confirmed. * @param {Function} config.confirmTransaction - Set a transaction as confirmed.
* @param {Function} config.getCompletedTransactions - Returns completed transactions. * @param {Function} config.getCompletedTransactions - Returns completed transactions.
* @param {Function} config.getPendingTransactions - Returns an array of pending transactions, * @param {Function} config.getPendingTransactions - Returns an array of pending transactions,
* @param {Object} config.nonceTracker - see nonce tracker * @param {object} config.nonceTracker - see nonce tracker
* @param {Object} config.provider - A network provider. * @param {object} config.provider - A network provider.
* @param {Object} config.query - An EthQuery instance. * @param {object} config.query - An EthQuery instance.
* @param {Function} config.publishTransaction - Publishes a raw transaction, * @param {Function} config.publishTransaction - Publishes a raw transaction,
*/ */
constructor(config) { constructor(config) {
@ -119,7 +119,7 @@ export default class PendingTransactionTracker extends EventEmitter {
* *
* Will only attempt to retry the given tx every {@code 2**(txMeta.retryCount)} blocks. * Will only attempt to retry the given tx every {@code 2**(txMeta.retryCount)} blocks.
* *
* @param {Object} txMeta - the transaction metadata * @param {object} txMeta - the transaction metadata
* @param {string} latestBlockNumber - the latest block number in hex * @param {string} latestBlockNumber - the latest block number in hex
* @returns {Promise<string|undefined>} the tx hash if retried * @returns {Promise<string|undefined>} the tx hash if retried
* @fires tx:block-update * @fires tx:block-update
@ -160,7 +160,7 @@ export default class PendingTransactionTracker extends EventEmitter {
/** /**
* Query the network to see if the given {@code txMeta} has been included in a block * Query the network to see if the given {@code txMeta} has been included in a block
* *
* @param {Object} txMeta - the transaction metadata * @param {object} txMeta - the transaction metadata
* @returns {Promise<void>} * @returns {Promise<void>}
* @fires tx:confirmed * @fires tx:confirmed
* @fires tx:dropped * @fires tx:dropped
@ -232,7 +232,7 @@ export default class PendingTransactionTracker extends EventEmitter {
/** /**
* Checks whether the nonce in the given {@code txMeta} is behind the network nonce * Checks whether the nonce in the given {@code txMeta} is behind the network nonce
* *
* @param {Object} txMeta - the transaction metadata * @param {object} txMeta - the transaction metadata
* @returns {Promise<boolean>} * @returns {Promise<boolean>}
* @private * @private
*/ */
@ -265,7 +265,7 @@ export default class PendingTransactionTracker extends EventEmitter {
/** /**
* Checks whether the nonce in the given {@code txMeta} is correct against the local set of transactions * Checks whether the nonce in the given {@code txMeta} is correct against the local set of transactions
* *
* @param {Object} txMeta - the transaction metadata * @param {object} txMeta - the transaction metadata
* @returns {Promise<boolean>} * @returns {Promise<boolean>}
* @private * @private
*/ */

@ -8,10 +8,10 @@ import { hexToBn, BnMultiplyByFraction, bnToHex } from '../../lib/util';
* Result of gas analysis, including either a gas estimate for a successful analysis, or * Result of gas analysis, including either a gas estimate for a successful analysis, or
* debug information for a failed analysis. * debug information for a failed analysis.
* *
* @typedef {Object} GasAnalysisResult * @typedef {object} GasAnalysisResult
* @property {string} blockGasLimit - The gas limit of the block used for the analysis * @property {string} blockGasLimit - The gas limit of the block used for the analysis
* @property {string} estimatedGasHex - The estimated gas, in hexadecimal * @property {string} estimatedGasHex - The estimated gas, in hexadecimal
* @property {Object} simulationFails - Debug information about why an analysis failed * @property {object} simulationFails - Debug information about why an analysis failed
*/ */
/** /**
@ -19,7 +19,7 @@ import { hexToBn, BnMultiplyByFraction, bnToHex } from '../../lib/util';
* its passed ethquery * its passed ethquery
* and used to do things like calculate gas of a tx. * and used to do things like calculate gas of a tx.
* *
* @param {Object} provider - A network provider. * @param {object} provider - A network provider.
*/ */
export default class TxGasUtil { export default class TxGasUtil {
@ -28,7 +28,7 @@ export default class TxGasUtil {
} }
/** /**
* @param {Object} txMeta - the txMeta object * @param {object} txMeta - the txMeta object
* @returns {GasAnalysisResult} The result of the gas analysis * @returns {GasAnalysisResult} The result of the gas analysis
*/ */
async analyzeGasUsage(txMeta) { async analyzeGasUsage(txMeta) {
@ -56,7 +56,7 @@ export default class TxGasUtil {
/** /**
* Estimates the tx's gas usage * Estimates the tx's gas usage
* *
* @param {Object} txMeta - the txMeta object * @param {object} txMeta - the txMeta object
* @returns {string} the estimated gas limit as a hex string * @returns {string} the estimated gas limit as a hex string
*/ */
async estimateTxGas(txMeta) { async estimateTxGas(txMeta) {

@ -39,7 +39,7 @@ export const ERROR_SUBMITTING =
*/ */
/** /**
* @typedef {Object} TransactionState * @typedef {object} TransactionState
* @property {Record<string, TransactionMeta>} transactions - TransactionMeta * @property {Record<string, TransactionMeta>} transactions - TransactionMeta
* keyed by the transaction's id. * keyed by the transaction's id.
*/ */
@ -49,7 +49,7 @@ export const ERROR_SUBMITTING =
* storing the transaction. It also has some convenience methods for finding * storing the transaction. It also has some convenience methods for finding
* subsets of transactions. * subsets of transactions.
* *
* @param {Object} opts * @param {object} opts
* @param {TransactionState} [opts.initState={ transactions: {} }] - initial * @param {TransactionState} [opts.initState={ transactions: {} }] - initial
* transactions list keyed by id * transactions list keyed by id
* @param {number} [opts.txHistoryLimit] - limit for how many finished * @param {number} [opts.txHistoryLimit] - limit for how many finished
@ -300,7 +300,7 @@ export default class TransactionStateManager extends EventEmitter {
/** /**
* updates the txMeta in the list and adds a history entry * updates the txMeta in the list and adds a history entry
* *
* @param {Object} txMeta - the txMeta to update * @param {object} txMeta - the txMeta to update
* @param {string} [note] - a note about the update for history * @param {string} [note] - a note about the update for history
*/ */
updateTransaction(txMeta, note) { updateTransaction(txMeta, note) {

@ -1,7 +1,7 @@
/** /**
* @typedef {Object} FirstTimeState * @typedef {object} FirstTimeState
* @property {Object} config Initial configuration parameters * @property {object} config Initial configuration parameters
* @property {Object} NetworkController Network controller state * @property {object} NetworkController Network controller state
*/ */
/** /**

@ -23,12 +23,12 @@ export default class ComposableObservableStore extends ObservableStore {
/** /**
* Create a new store * Create a new store
* *
* @param {Object} options * @param {object} options
* @param {Object} [options.config] - Map of internal state keys to child stores * @param {object} [options.config] - Map of internal state keys to child stores
* @param {ControllerMessenger} options.controllerMessenger - The controller * @param {ControllerMessenger} options.controllerMessenger - The controller
* messenger, used for subscribing to events from BaseControllerV2-based * messenger, used for subscribing to events from BaseControllerV2-based
* controllers. * controllers.
* @param {Object} [options.state] - The initial store state * @param {object} [options.state] - The initial store state
* @param {boolean} [options.persist] - Whether or not to apply the persistence for v2 controllers * @param {boolean} [options.persist] - Whether or not to apply the persistence for v2 controllers
*/ */
constructor({ config, controllerMessenger, state, persist }) { constructor({ config, controllerMessenger, state, persist }) {
@ -79,7 +79,7 @@ export default class ComposableObservableStore extends ObservableStore {
* Merges all child store state into a single object rather than * Merges all child store state into a single object rather than
* returning an object keyed by child store class name * returning an object keyed by child store class name
* *
* @returns {Object} Object containing merged child store state * @returns {object} Object containing merged child store state
*/ */
getFlatState() { getFlatState() {
if (!this.config) { if (!this.config) {

@ -49,21 +49,21 @@ import { bnToHex } from './util';
* *
* It also tracks transaction hashes, and checks their inclusion status on each new block. * It also tracks transaction hashes, and checks their inclusion status on each new block.
* *
* @typedef {Object} AccountTracker * @typedef {object} AccountTracker
* @property {Object} store The stored object containing all accounts to track, as well as the current block's gas limit. * @property {object} store The stored object containing all accounts to track, as well as the current block's gas limit.
* @property {Object} store.accounts The accounts currently stored in this AccountTracker * @property {object} store.accounts The accounts currently stored in this AccountTracker
* @property {string} store.currentBlockGasLimit A hex string indicating the gas limit of the current block * @property {string} store.currentBlockGasLimit A hex string indicating the gas limit of the current block
* @property {Object} _provider A provider needed to create the EthQuery instance used within this AccountTracker. * @property {object} _provider A provider needed to create the EthQuery instance used within this AccountTracker.
* @property {EthQuery} _query An EthQuery instance used to access account information from the blockchain * @property {EthQuery} _query An EthQuery instance used to access account information from the blockchain
* @property {BlockTracker} _blockTracker A BlockTracker instance. Needed to ensure that accounts and their info updates * @property {BlockTracker} _blockTracker A BlockTracker instance. Needed to ensure that accounts and their info updates
* when a new block is created. * when a new block is created.
* @property {Object} _currentBlockNumber Reference to a property on the _blockTracker: the number (i.e. an id) of the the current block * @property {object} _currentBlockNumber Reference to a property on the _blockTracker: the number (i.e. an id) of the the current block
*/ */
export default class AccountTracker { export default class AccountTracker {
/** /**
* @param {Object} opts - Options for initializing the controller * @param {object} opts - Options for initializing the controller
* @param {Object} opts.provider - An EIP-1193 provider instance that uses the current global network * @param {object} opts.provider - An EIP-1193 provider instance that uses the current global network
* @param {Object} opts.blockTracker - A block tracker, which emits events for each new block * @param {object} opts.blockTracker - A block tracker, which emits events for each new block
* @param {Function} opts.getCurrentChainId - A function that returns the `chainId` for the current global network * @param {Function} opts.getCurrentChainId - A function that returns the `chainId` for the current global network
*/ */
constructor(opts = {}) { constructor(opts = {}) {

@ -140,7 +140,7 @@ const createCoinbasePayUrl = (walletAddress, chainId) => {
/** /**
* Gives the caller a url at which the user can acquire eth, depending on the network they are in * Gives the caller a url at which the user can acquire eth, depending on the network they are in
* *
* @param {Object} opts - Options required to determine the correct url * @param {object} opts - Options required to determine the correct url
* @param {string} opts.chainId - The chainId for which to return a url * @param {string} opts.chainId - The chainId for which to return a url
* @param {string} opts.address - The address the bought ETH should be sent to. Only relevant if chainId === '0x1'. * @param {string} opts.address - The address the bought ETH should be sent to. Only relevant if chainId === '0x1'.
* @param opts.service * @param opts.service

@ -15,11 +15,11 @@ const hexRe = /^[0-9A-Fa-f]+$/gu;
* Represents, and contains data about, an 'eth_decrypt' type decryption request. These are created when a * Represents, and contains data about, an 'eth_decrypt' type decryption request. These are created when a
* decryption for an eth_decrypt call is requested. * decryption for an eth_decrypt call is requested.
* *
* @typedef {Object} DecryptMessage * @typedef {object} DecryptMessage
* @property {number} id An id to track and identify the message object * @property {number} id An id to track and identify the message object
* @property {Object} msgParams The parameters to pass to the decryptMessage method once the decryption request is * @property {object} msgParams The parameters to pass to the decryptMessage method once the decryption request is
* approved. * approved.
* @property {Object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask. * @property {object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask.
* @property {string} msgParams.data A hex string conversion of the raw buffer data of the decryption request * @property {string} msgParams.data A hex string conversion of the raw buffer data of the decryption request
* @property {number} time The epoch time at which the this message was created * @property {number} time The epoch time at which the this message was created
* @property {string} status Indicates whether the decryption request is 'unapproved', 'approved', 'decrypted' or 'rejected' * @property {string} status Indicates whether the decryption request is 'unapproved', 'approved', 'decrypted' or 'rejected'
@ -56,7 +56,7 @@ export default class DecryptMessageManager extends EventEmitter {
/** /**
* A getter for the 'unapproved' DecryptMessages in this.messages * A getter for the 'unapproved' DecryptMessages in this.messages
* *
* @returns {Object} An index of DecryptMessage ids to DecryptMessages, for all 'unapproved' DecryptMessages in * @returns {object} An index of DecryptMessage ids to DecryptMessages, for all 'unapproved' DecryptMessages in
* this.messages * this.messages
*/ */
getUnapprovedMsgs() { getUnapprovedMsgs() {
@ -73,8 +73,8 @@ export default class DecryptMessageManager extends EventEmitter {
* the new DecryptMessage to this.messages, and to save the unapproved DecryptMessages from that list to * the new DecryptMessage to this.messages, and to save the unapproved DecryptMessages from that list to
* this.memStore. * this.memStore.
* *
* @param {Object} msgParams - The params for the eth_decrypt call to be made after the message is approved. * @param {object} msgParams - The params for the eth_decrypt call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @returns {Promise<Buffer>} The raw decrypted message contents * @returns {Promise<Buffer>} The raw decrypted message contents
*/ */
addUnapprovedMessageAsync(msgParams, req) { addUnapprovedMessageAsync(msgParams, req) {
@ -117,8 +117,8 @@ export default class DecryptMessageManager extends EventEmitter {
* the new DecryptMessage to this.messages, and to save the unapproved DecryptMessages from that list to * the new DecryptMessage to this.messages, and to save the unapproved DecryptMessages from that list to
* this.memStore. * this.memStore.
* *
* @param {Object} msgParams - The params for the eth_decryptMsg call to be made after the message is approved. * @param {object} msgParams - The params for the eth_decryptMsg call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @returns {number} The id of the newly created DecryptMessage. * @returns {number} The id of the newly created DecryptMessage.
*/ */
addUnapprovedMessage(msgParams, req) { addUnapprovedMessage(msgParams, req) {
@ -175,8 +175,8 @@ export default class DecryptMessageManager extends EventEmitter {
* Approves a DecryptMessage. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise * Approves a DecryptMessage. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise
* with the message params modified for proper decryption. * with the message params modified for proper decryption.
* *
* @param {Object} msgParams - The msgParams to be used when eth_decryptMsg is called, plus data added by MetaMask. * @param {object} msgParams - The msgParams to be used when eth_decryptMsg is called, plus data added by MetaMask.
* @param {Object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask. * @param {object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask.
* @returns {Promise<object>} Promises the msgParams object with metamaskId removed. * @returns {Promise<object>} Promises the msgParams object with metamaskId removed.
*/ */
approveMessage(msgParams) { approveMessage(msgParams) {
@ -210,7 +210,7 @@ export default class DecryptMessageManager extends EventEmitter {
/** /**
* Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams * Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams
* *
* @param {Object} msgParams - The msgParams to modify * @param {object} msgParams - The msgParams to modify
* @returns {Promise<object>} Promises the msgParams with the metamaskId property removed * @returns {Promise<object>} Promises the msgParams with the metamaskId property removed
*/ */
prepMsgForDecryption(msgParams) { prepMsgForDecryption(msgParams) {

@ -11,11 +11,11 @@ import createId from '../../../shared/modules/random-id';
* Represents, and contains data about, an 'eth_getEncryptionPublicKey' type request. These are created when * Represents, and contains data about, an 'eth_getEncryptionPublicKey' type request. These are created when
* an eth_getEncryptionPublicKey call is requested. * an eth_getEncryptionPublicKey call is requested.
* *
* @typedef {Object} EncryptionPublicKey * @typedef {object} EncryptionPublicKey
* @property {number} id An id to track and identify the message object * @property {number} id An id to track and identify the message object
* @property {Object} msgParams The parameters to pass to the encryptionPublicKey method once the request is * @property {object} msgParams The parameters to pass to the encryptionPublicKey method once the request is
* approved. * approved.
* @property {Object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask. * @property {object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask.
* @property {string} msgParams.data A hex string conversion of the raw buffer data of the request * @property {string} msgParams.data A hex string conversion of the raw buffer data of the request
* @property {number} time The epoch time at which the this message was created * @property {number} time The epoch time at which the this message was created
* @property {string} status Indicates whether the request is 'unapproved', 'approved', 'received' or 'rejected' * @property {string} status Indicates whether the request is 'unapproved', 'approved', 'received' or 'rejected'
@ -52,7 +52,7 @@ export default class EncryptionPublicKeyManager extends EventEmitter {
/** /**
* A getter for the 'unapproved' EncryptionPublicKeys in this.messages * A getter for the 'unapproved' EncryptionPublicKeys in this.messages
* *
* @returns {Object} An index of EncryptionPublicKey ids to EncryptionPublicKeys, for all 'unapproved' EncryptionPublicKeys in * @returns {object} An index of EncryptionPublicKey ids to EncryptionPublicKeys, for all 'unapproved' EncryptionPublicKeys in
* this.messages * this.messages
*/ */
getUnapprovedMsgs() { getUnapprovedMsgs() {
@ -69,8 +69,8 @@ export default class EncryptionPublicKeyManager extends EventEmitter {
* the new EncryptionPublicKey to this.messages, and to save the unapproved EncryptionPublicKeys from that list to * the new EncryptionPublicKey to this.messages, and to save the unapproved EncryptionPublicKeys from that list to
* this.memStore. * this.memStore.
* *
* @param {Object} address - The param for the eth_getEncryptionPublicKey call to be made after the message is approved. * @param {object} address - The param for the eth_getEncryptionPublicKey call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @returns {Promise<Buffer>} The raw public key contents * @returns {Promise<Buffer>} The raw public key contents
*/ */
addUnapprovedMessageAsync(address, req) { addUnapprovedMessageAsync(address, req) {
@ -110,8 +110,8 @@ export default class EncryptionPublicKeyManager extends EventEmitter {
* the new EncryptionPublicKey to this.messages, and to save the unapproved EncryptionPublicKeys from that list to * the new EncryptionPublicKey to this.messages, and to save the unapproved EncryptionPublicKeys from that list to
* this.memStore. * this.memStore.
* *
* @param {Object} address - The param for the eth_getEncryptionPublicKey call to be made after the message is approved. * @param {object} address - The param for the eth_getEncryptionPublicKey call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @returns {number} The id of the newly created EncryptionPublicKey. * @returns {number} The id of the newly created EncryptionPublicKey.
*/ */
addUnapprovedMessage(address, req) { addUnapprovedMessage(address, req) {
@ -164,8 +164,8 @@ export default class EncryptionPublicKeyManager extends EventEmitter {
* Approves a EncryptionPublicKey. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise * Approves a EncryptionPublicKey. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise
* with any the message params modified for proper providing. * with any the message params modified for proper providing.
* *
* @param {Object} msgParams - The msgParams to be used when eth_getEncryptionPublicKey is called, plus data added by MetaMask. * @param {object} msgParams - The msgParams to be used when eth_getEncryptionPublicKey is called, plus data added by MetaMask.
* @param {Object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask. * @param {object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask.
* @returns {Promise<object>} Promises the msgParams object with metamaskId removed. * @returns {Promise<object>} Promises the msgParams object with metamaskId removed.
*/ */
approveMessage(msgParams) { approveMessage(msgParams) {
@ -199,7 +199,7 @@ export default class EncryptionPublicKeyManager extends EventEmitter {
/** /**
* Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams * Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams
* *
* @param {Object} msgParams - The msgParams to modify * @param {object} msgParams - The msgParams to modify
* @returns {Promise<object>} Promises the msgParams with the metamaskId property removed * @returns {Promise<object>} Promises the msgParams with the metamaskId property removed
*/ */
prepMsgForEncryptionPublicKey(msgParams) { prepMsgForEncryptionPublicKey(msgParams) {

@ -16,8 +16,8 @@ import { cloneDeep } from 'lodash';
* Creates an object that represents the structure of the given object. It replaces all values with the result of their * Creates an object that represents the structure of the given object. It replaces all values with the result of their
* type. * type.
* *
* @param {Object} obj - The object for which a 'structure' will be returned. Usually a plain object and not a class. * @param {object} obj - The object for which a 'structure' will be returned. Usually a plain object and not a class.
* @returns {Object} The "mapped" version of a deep clone of the passed object, with each non-object property value * @returns {object} The "mapped" version of a deep clone of the passed object, with each non-object property value
* replaced with the javascript type of that value. * replaced with the javascript type of that value.
*/ */
export default function getObjStructure(obj) { export default function getObjStructure(obj) {
@ -31,9 +31,9 @@ export default function getObjStructure(obj) {
* Modifies all the properties and deeply nested of a passed object. Iterates recursively over all nested objects and * Modifies all the properties and deeply nested of a passed object. Iterates recursively over all nested objects and
* their properties, and covers the entire depth of the object. At each property value which is not an object is modified. * their properties, and covers the entire depth of the object. At each property value which is not an object is modified.
* *
* @param {Object} target - The object to modify * @param {object} target - The object to modify
* @param {Function} visit - The modifier to apply to each non-object property value * @param {Function} visit - The modifier to apply to each non-object property value
* @returns {Object} The modified object * @returns {object} The modified object
*/ */
function deepMap(target = {}, visit) { function deepMap(target = {}, visit) {
Object.entries(target).forEach(([key, value]) => { Object.entries(target).forEach(([key, value]) => {

@ -34,7 +34,7 @@ export default class ExtensionStore {
/** /**
* Sets the key in local state * Sets the key in local state
* *
* @param {Object} state - The state to set * @param {object} state - The state to set
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async set(state) { async set(state) {
@ -45,7 +45,7 @@ export default class ExtensionStore {
* Returns all of the keys currently saved * Returns all of the keys currently saved
* *
* @private * @private
* @returns {Object} the key-value map from local storage * @returns {object} the key-value map from local storage
*/ */
_get() { _get() {
const { local } = browser.storage; const { local } = browser.storage;
@ -64,7 +64,7 @@ export default class ExtensionStore {
/** /**
* Sets the key in local state * Sets the key in local state
* *
* @param {Object} obj - The key to set * @param {object} obj - The key to set
* @returns {Promise<void>} * @returns {Promise<void>}
* @private * @private
*/ */
@ -86,7 +86,7 @@ export default class ExtensionStore {
/** /**
* Returns whether or not the given object contains no keys * Returns whether or not the given object contains no keys
* *
* @param {Object} obj - The object to check * @param {object} obj - The object to check
* @returns {boolean} * @returns {boolean}
*/ */
function isEmpty(obj) { function isEmpty(obj) {

@ -12,10 +12,10 @@ import { EVENT } from '../../../shared/constants/metametrics';
* an eth_sign call is requested. * an eth_sign call is requested.
* *
* @see {@link https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign} * @see {@link https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign}
* @typedef {Object} Message * @typedef {object} Message
* @property {number} id An id to track and identify the message object * @property {number} id An id to track and identify the message object
* @property {Object} msgParams The parameters to pass to the eth_sign method once the signature request is approved. * @property {object} msgParams The parameters to pass to the eth_sign method once the signature request is approved.
* @property {Object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask. * @property {object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask.
* @property {string} msgParams.data A hex string conversion of the raw buffer data of the signature request * @property {string} msgParams.data A hex string conversion of the raw buffer data of the signature request
* @property {number} time The epoch time at which the this message was created * @property {number} time The epoch time at which the this message was created
* @property {string} status Indicates whether the signature request is 'unapproved', 'approved', 'signed' or 'rejected' * @property {string} status Indicates whether the signature request is 'unapproved', 'approved', 'signed' or 'rejected'
@ -52,7 +52,7 @@ export default class MessageManager extends EventEmitter {
/** /**
* A getter for the 'unapproved' Messages in this.messages * A getter for the 'unapproved' Messages in this.messages
* *
* @returns {Object} An index of Message ids to Messages, for all 'unapproved' Messages in this.messages * @returns {object} An index of Message ids to Messages, for all 'unapproved' Messages in this.messages
*/ */
getUnapprovedMsgs() { getUnapprovedMsgs() {
return this.messages return this.messages
@ -67,8 +67,8 @@ export default class MessageManager extends EventEmitter {
* Creates a new Message with an 'unapproved' status using the passed msgParams. this.addMsg is called to add the * Creates a new Message with an 'unapproved' status using the passed msgParams. this.addMsg is called to add the
* new Message to this.messages, and to save the unapproved Messages from that list to this.memStore. * new Message to this.messages, and to save the unapproved Messages from that list to this.memStore.
* *
* @param {Object} msgParams - The params for the eth_sign call to be made after the message is approved. * @param {object} msgParams - The params for the eth_sign call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @returns {promise} after signature has been * @returns {promise} after signature has been
*/ */
async addUnapprovedMessageAsync(msgParams, req) { async addUnapprovedMessageAsync(msgParams, req) {
@ -106,8 +106,8 @@ export default class MessageManager extends EventEmitter {
* Creates a new Message with an 'unapproved' status using the passed msgParams. this.addMsg is called to add the * Creates a new Message with an 'unapproved' status using the passed msgParams. this.addMsg is called to add the
* new Message to this.messages, and to save the unapproved Messages from that list to this.memStore. * new Message to this.messages, and to save the unapproved Messages from that list to this.memStore.
* *
* @param {Object} msgParams - The params for the eth_sign call to be made after the message is approved. * @param {object} msgParams - The params for the eth_sign call to be made after the message is approved.
* @param {Object} [req] - The original request object where the origin may be specified * @param {object} [req] - The original request object where the origin may be specified
* @returns {number} The id of the newly created message. * @returns {number} The id of the newly created message.
*/ */
addUnapprovedMessage(msgParams, req) { addUnapprovedMessage(msgParams, req) {
@ -158,8 +158,8 @@ export default class MessageManager extends EventEmitter {
* Approves a Message. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise with * Approves a Message. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise with
* any the message params modified for proper signing. * any the message params modified for proper signing.
* *
* @param {Object} msgParams - The msgParams to be used when eth_sign is called, plus data added by MetaMask. * @param {object} msgParams - The msgParams to be used when eth_sign is called, plus data added by MetaMask.
* @param {Object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask. * @param {object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask.
* @returns {Promise<object>} Promises the msgParams object with metamaskId removed. * @returns {Promise<object>} Promises the msgParams object with metamaskId removed.
*/ */
approveMessage(msgParams) { approveMessage(msgParams) {
@ -193,7 +193,7 @@ export default class MessageManager extends EventEmitter {
/** /**
* Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams * Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams
* *
* @param {Object} msgParams - The msgParams to modify * @param {object} msgParams - The msgParams to modify
* @returns {Promise<object>} Promises the msgParams with the metamaskId property removed * @returns {Promise<object>} Promises the msgParams with the metamaskId property removed
*/ */
prepMsgForSigning(msgParams) { prepMsgForSigning(msgParams) {

@ -1,13 +1,13 @@
import EventEmitter from 'events'; import EventEmitter from 'events';
/** /**
* @typedef {Object} Migration * @typedef {object} Migration
* @property {number} version - The migration version * @property {number} version - The migration version
* @property {Function} migrate - Returns a promise of the migrated data * @property {Function} migrate - Returns a promise of the migrated data
*/ */
/** /**
* @typedef {Object} MigratorOptions * @typedef {object} MigratorOptions
* @property {Array<Migration>} [migrations] - The list of migrations to apply * @property {Array<Migration>} [migrations] - The list of migrations to apply
* @property {number} [defaultVersion] - The version to use in the initial state * @property {number} [defaultVersion] - The version to use in the initial state
*/ */
@ -82,7 +82,7 @@ export default class Migrator extends EventEmitter {
/** /**
* Returns the initial state for the migrator * Returns the initial state for the migrator
* *
* @param {Object} [data] - The data for the initial state * @param {object} [data] - The data for the initial state
* @returns {{meta: {version: number}, data: any}} * @returns {{meta: {version: number}, data: any}}
*/ */
generateInitialState(data) { generateInitialState(data) {

@ -53,7 +53,7 @@ export default class ReadOnlyNetworkStore {
/** /**
* Set state * Set state
* *
* @param {Object} state - The state to set * @param {object} state - The state to set
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async set(state) { async set(state) {

@ -16,11 +16,11 @@ const hexRe = /^[0-9A-Fa-f]+$/gu;
* signature for an personal_sign call is requested. * signature for an personal_sign call is requested.
* *
* @see {@link https://web3js.readthedocs.io/en/1.0/web3-eth-personal.html#sign} * @see {@link https://web3js.readthedocs.io/en/1.0/web3-eth-personal.html#sign}
* @typedef {Object} PersonalMessage * @typedef {object} PersonalMessage
* @property {number} id An id to track and identify the message object * @property {number} id An id to track and identify the message object
* @property {Object} msgParams The parameters to pass to the personal_sign method once the signature request is * @property {object} msgParams The parameters to pass to the personal_sign method once the signature request is
* approved. * approved.
* @property {Object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask. * @property {object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask.
* @property {string} msgParams.data A hex string conversion of the raw buffer data of the signature request * @property {string} msgParams.data A hex string conversion of the raw buffer data of the signature request
* @property {number} time The epoch time at which the this message was created * @property {number} time The epoch time at which the this message was created
* @property {string} status Indicates whether the signature request is 'unapproved', 'approved', 'signed' or 'rejected' * @property {string} status Indicates whether the signature request is 'unapproved', 'approved', 'signed' or 'rejected'
@ -57,7 +57,7 @@ export default class PersonalMessageManager extends EventEmitter {
/** /**
* A getter for the 'unapproved' PersonalMessages in this.messages * A getter for the 'unapproved' PersonalMessages in this.messages
* *
* @returns {Object} An index of PersonalMessage ids to PersonalMessages, for all 'unapproved' PersonalMessages in * @returns {object} An index of PersonalMessage ids to PersonalMessages, for all 'unapproved' PersonalMessages in
* this.messages * this.messages
*/ */
getUnapprovedMsgs() { getUnapprovedMsgs() {
@ -74,8 +74,8 @@ export default class PersonalMessageManager extends EventEmitter {
* the new PersonalMessage to this.messages, and to save the unapproved PersonalMessages from that list to * the new PersonalMessage to this.messages, and to save the unapproved PersonalMessages from that list to
* this.memStore. * this.memStore.
* *
* @param {Object} msgParams - The params for the eth_sign call to be made after the message is approved. * @param {object} msgParams - The params for the eth_sign call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @returns {promise} When the message has been signed or rejected * @returns {promise} When the message has been signed or rejected
*/ */
addUnapprovedMessageAsync(msgParams, req) { addUnapprovedMessageAsync(msgParams, req) {
@ -120,8 +120,8 @@ export default class PersonalMessageManager extends EventEmitter {
* the new PersonalMessage to this.messages, and to save the unapproved PersonalMessages from that list to * the new PersonalMessage to this.messages, and to save the unapproved PersonalMessages from that list to
* this.memStore. * this.memStore.
* *
* @param {Object} msgParams - The params for the eth_sign call to be made after the message is approved. * @param {object} msgParams - The params for the eth_sign call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @returns {number} The id of the newly created PersonalMessage. * @returns {number} The id of the newly created PersonalMessage.
*/ */
addUnapprovedMessage(msgParams, req) { addUnapprovedMessage(msgParams, req) {
@ -178,8 +178,8 @@ export default class PersonalMessageManager extends EventEmitter {
* Approves a PersonalMessage. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise * Approves a PersonalMessage. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise
* with any the message params modified for proper signing. * with any the message params modified for proper signing.
* *
* @param {Object} msgParams - The msgParams to be used when eth_sign is called, plus data added by MetaMask. * @param {object} msgParams - The msgParams to be used when eth_sign is called, plus data added by MetaMask.
* @param {Object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask. * @param {object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask.
* @returns {Promise<object>} Promises the msgParams object with metamaskId removed. * @returns {Promise<object>} Promises the msgParams object with metamaskId removed.
*/ */
approveMessage(msgParams) { approveMessage(msgParams) {
@ -213,7 +213,7 @@ export default class PersonalMessageManager extends EventEmitter {
/** /**
* Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams * Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams
* *
* @param {Object} msgParams - The msgParams to modify * @param {object} msgParams - The msgParams to modify
* @returns {Promise<object>} Promises the msgParams with the metamaskId property removed * @returns {Promise<object>} Promises the msgParams with the metamaskId property removed
*/ */
prepMsgForSigning(msgParams) { prepMsgForSigning(msgParams) {

@ -16,14 +16,14 @@ const getProviderState = {
export default getProviderState; export default getProviderState;
/** /**
* @typedef {Object} ProviderStateHandlerResult * @typedef {object} ProviderStateHandlerResult
* @property {string} chainId - The current chain ID. * @property {string} chainId - The current chain ID.
* @property {boolean} isUnlocked - Whether the extension is unlocked or not. * @property {boolean} isUnlocked - Whether the extension is unlocked or not.
* @property {string} networkVersion - The current network ID. * @property {string} networkVersion - The current network ID.
*/ */
/** /**
* @typedef {Object} ProviderStateHandlerOptions * @typedef {object} ProviderStateHandlerOptions
* @property {() => ProviderStateHandlerResult} getProviderState - A function that * @property {() => ProviderStateHandlerResult} getProviderState - A function that
* gets the current provider state. * gets the current provider state.
*/ */

@ -20,7 +20,7 @@ const logWeb3ShimUsage = {
export default logWeb3ShimUsage; export default logWeb3ShimUsage;
/** /**
* @typedef {Object} LogWeb3ShimUsageOptions * @typedef {object} LogWeb3ShimUsageOptions
* @property {Function} sendMetrics - A function that registers a metrics event. * @property {Function} sendMetrics - A function that registers a metrics event.
* @property {Function} getWeb3ShimUsageState - A function that gets web3 shim * @property {Function} getWeb3ShimUsageState - A function that gets web3 shim
* usage state for the given origin. * usage state for the given origin.

@ -11,14 +11,14 @@ const watchAsset = {
export default watchAsset; export default watchAsset;
/** /**
* @typedef {Object} WatchAssetOptions * @typedef {object} WatchAssetOptions
* @property {Function} handleWatchAssetRequest - The wallet_watchAsset method implementation. * @property {Function} handleWatchAssetRequest - The wallet_watchAsset method implementation.
*/ */
/** /**
* @typedef {Object} WatchAssetParam * @typedef {object} WatchAssetParam
* @property {string} type - The type of the asset to watch. * @property {string} type - The type of the asset to watch.
* @property {Object} options - Watch options for the asset. * @property {object} options - Watch options for the asset.
*/ */
/** /**

@ -15,12 +15,12 @@ import { isValidHexAddress } from '../../../shared/modules/hexstring-utils';
* Represents, and contains data about, an 'eth_signTypedData' type signature request. These are created when a * Represents, and contains data about, an 'eth_signTypedData' type signature request. These are created when a
* signature for an eth_signTypedData call is requested. * signature for an eth_signTypedData call is requested.
* *
* @typedef {Object} TypedMessage * @typedef {object} TypedMessage
* @property {number} id An id to track and identify the message object * @property {number} id An id to track and identify the message object
* @property {Object} msgParams The parameters to pass to the eth_signTypedData method once the signature request is * @property {object} msgParams The parameters to pass to the eth_signTypedData method once the signature request is
* approved. * approved.
* @property {Object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask. * @property {object} msgParams.metamaskId Added to msgParams for tracking and identification within MetaMask.
* @property {Object} msgParams.from The address that is making the signature request. * @property {object} msgParams.from The address that is making the signature request.
* @property {string} msgParams.data A hex string conversion of the raw buffer data of the signature request * @property {string} msgParams.data A hex string conversion of the raw buffer data of the signature request
* @property {number} time The epoch time at which the this message was created * @property {number} time The epoch time at which the this message was created
* @property {string} status Indicates whether the signature request is 'unapproved', 'approved', 'signed', 'rejected', or 'errored' * @property {string} status Indicates whether the signature request is 'unapproved', 'approved', 'signed', 'rejected', or 'errored'
@ -59,7 +59,7 @@ export default class TypedMessageManager extends EventEmitter {
/** /**
* A getter for the 'unapproved' TypedMessages in this.messages * A getter for the 'unapproved' TypedMessages in this.messages
* *
* @returns {Object} An index of TypedMessage ids to TypedMessages, for all 'unapproved' TypedMessages in * @returns {object} An index of TypedMessage ids to TypedMessages, for all 'unapproved' TypedMessages in
* this.messages * this.messages
*/ */
getUnapprovedMsgs() { getUnapprovedMsgs() {
@ -76,8 +76,8 @@ export default class TypedMessageManager extends EventEmitter {
* the new TypedMessage to this.messages, and to save the unapproved TypedMessages from that list to * the new TypedMessage to this.messages, and to save the unapproved TypedMessages from that list to
* this.memStore. Before any of this is done, msgParams are validated * this.memStore. Before any of this is done, msgParams are validated
* *
* @param {Object} msgParams - The params for the eth_sign call to be made after the message is approved. * @param {object} msgParams - The params for the eth_sign call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @param version * @param version
* @returns {promise} When the message has been signed or rejected * @returns {promise} When the message has been signed or rejected
*/ */
@ -116,8 +116,8 @@ export default class TypedMessageManager extends EventEmitter {
* the new TypedMessage to this.messages, and to save the unapproved TypedMessages from that list to * the new TypedMessage to this.messages, and to save the unapproved TypedMessages from that list to
* this.memStore. Before any of this is done, msgParams are validated * this.memStore. Before any of this is done, msgParams are validated
* *
* @param {Object} msgParams - The params for the eth_sign call to be made after the message is approved. * @param {object} msgParams - The params for the eth_sign call to be made after the message is approved.
* @param {Object} [req] - The original request object possibly containing the origin * @param {object} [req] - The original request object possibly containing the origin
* @param version * @param version
* @returns {number} The id of the newly created TypedMessage. * @returns {number} The id of the newly created TypedMessage.
*/ */
@ -152,7 +152,7 @@ export default class TypedMessageManager extends EventEmitter {
/** /**
* Helper method for this.addUnapprovedMessage. Validates that the passed params have the required properties. * Helper method for this.addUnapprovedMessage. Validates that the passed params have the required properties.
* *
* @param {Object} params - The params to validate * @param {object} params - The params to validate
*/ */
validateParams(params) { validateParams(params) {
assert.ok( assert.ok(
@ -249,8 +249,8 @@ export default class TypedMessageManager extends EventEmitter {
* Approves a TypedMessage. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise * Approves a TypedMessage. Sets the message status via a call to this.setMsgStatusApproved, and returns a promise
* with any the message params modified for proper signing. * with any the message params modified for proper signing.
* *
* @param {Object} msgParams - The msgParams to be used when eth_sign is called, plus data added by MetaMask. * @param {object} msgParams - The msgParams to be used when eth_sign is called, plus data added by MetaMask.
* @param {Object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask. * @param {object} msgParams.metamaskId - Added to msgParams for tracking and identification within MetaMask.
* @returns {Promise<object>} Promises the msgParams object with metamaskId removed. * @returns {Promise<object>} Promises the msgParams object with metamaskId removed.
*/ */
approveMessage(msgParams) { approveMessage(msgParams) {
@ -284,7 +284,7 @@ export default class TypedMessageManager extends EventEmitter {
/** /**
* Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams * Removes the metamaskId property from passed msgParams and returns a promise which resolves the updated msgParams
* *
* @param {Object} msgParams - The msgParams to modify * @param {object} msgParams - The msgParams to modify
* @returns {Promise<object>} Promises the msgParams with the metamaskId property removed * @returns {Promise<object>} Promises the msgParams with the metamaskId property removed
*/ */
prepMsgForSigning(msgParams) { prepMsgForSigning(msgParams) {

@ -76,7 +76,7 @@ const getPlatform = () => {
* Converts a hex string to a BN object * Converts a hex string to a BN object
* *
* @param {string} inputHex - A number represented as a hex string * @param {string} inputHex - A number represented as a hex string
* @returns {Object} A BN object * @returns {object} A BN object
*/ */
function hexToBn(inputHex) { function hexToBn(inputHex) {
return new BN(stripHexPrefix(inputHex), 16); return new BN(stripHexPrefix(inputHex), 16);

@ -74,7 +74,7 @@ try {
* We want to make globals non-writable, and we can't set the `writable` * We want to make globals non-writable, and we can't set the `writable`
* property and accessor properties at the same time. * property and accessor properties at the same time.
* *
* @param {Object} descriptor - The propertyName descriptor to check. * @param {object} descriptor - The propertyName descriptor to check.
* @returns {boolean} Whether the propertyName descriptor has any accessors. * @returns {boolean} Whether the propertyName descriptor has any accessors.
*/ */
function hasAccessor(descriptor) { function hasAccessor(descriptor) {

@ -166,7 +166,7 @@ const PHISHING_SAFELIST = 'metamask-phishing-safelist';
export default class MetamaskController extends EventEmitter { export default class MetamaskController extends EventEmitter {
/** /**
* @param {Object} opts * @param {object} opts
*/ */
constructor(opts) { constructor(opts) {
super(); super();
@ -1441,9 +1441,9 @@ export default class MetamaskController extends EventEmitter {
/** /**
* Gets network state relevant for external providers. * Gets network state relevant for external providers.
* *
* @param {Object} [memState] - The MetaMask memState. If not provided, * @param {object} [memState] - The MetaMask memState. If not provided,
* this function will retrieve the most recent state. * this function will retrieve the most recent state.
* @returns {Object} An object with relevant network state properties. * @returns {object} An object with relevant network state properties.
*/ */
getProviderNetworkState(memState) { getProviderNetworkState(memState) {
const { network } = memState || this.getState(); const { network } = memState || this.getState();
@ -1460,7 +1460,7 @@ export default class MetamaskController extends EventEmitter {
/** /**
* The metamask-state of the various controllers, made available to the UI * The metamask-state of the various controllers, made available to the UI
* *
* @returns {Object} status * @returns {object} status
*/ */
getState() { getState() {
const { vault } = this.keyringController.store.getState(); const { vault } = this.keyringController.store.getState();
@ -1477,7 +1477,7 @@ export default class MetamaskController extends EventEmitter {
* These functions are the interface for the UI. * These functions are the interface for the UI.
* The API object can be transmitted over a stream via JSON-RPC. * The API object can be transmitted over a stream via JSON-RPC.
* *
* @returns {Object} Object containing API functions. * @returns {object} Object containing API functions.
*/ */
getApi() { getApi() {
const { const {
@ -2029,7 +2029,7 @@ export default class MetamaskController extends EventEmitter {
* For example, a mnemonic phrase can generate many accounts, and is a keyring. * For example, a mnemonic phrase can generate many accounts, and is a keyring.
* *
* @param {string} password * @param {string} password
* @returns {Object} vault * @returns {object} vault
*/ */
async createNewVaultAndKeychain(password) { async createNewVaultAndKeychain(password) {
const releaseLock = await this.createVaultMutex.acquire(); const releaseLock = await this.createVaultMutex.acquire();
@ -2803,8 +2803,8 @@ export default class MetamaskController extends EventEmitter {
* this wrapper needs to exist so we can provide a reference to * this wrapper needs to exist so we can provide a reference to
* "newUnapprovedTransaction" before "txController" is instantiated * "newUnapprovedTransaction" before "txController" is instantiated
* *
* @param {Object} txParams - The transaction parameters. * @param {object} txParams - The transaction parameters.
* @param {Object} [req] - The original request, containing the origin. * @param {object} [req] - The original request, containing the origin.
*/ */
async newUnapprovedTransaction(txParams, req) { async newUnapprovedTransaction(txParams, req) {
return await this.txController.newUnapprovedTransaction(txParams, req); return await this.txController.newUnapprovedTransaction(txParams, req);
@ -2818,8 +2818,8 @@ export default class MetamaskController extends EventEmitter {
* path, since this data can be a transaction, or can leak private key * path, since this data can be a transaction, or can leak private key
* information. * information.
* *
* @param {Object} msgParams - The params passed to eth_sign. * @param {object} msgParams - The params passed to eth_sign.
* @param {Object} [req] - The original request, containing the origin. * @param {object} [req] - The original request, containing the origin.
*/ */
async newUnsignedMessage(msgParams, req) { async newUnsignedMessage(msgParams, req) {
const data = normalizeMsgData(msgParams.data); const data = normalizeMsgData(msgParams.data);
@ -2868,7 +2868,7 @@ export default class MetamaskController extends EventEmitter {
/** /**
* Signifies user intent to complete an eth_sign method. * Signifies user intent to complete an eth_sign method.
* *
* @param {Object} msgParams - The params passed to eth_call. * @param {object} msgParams - The params passed to eth_call.
* @returns {Promise<object>} Full state update. * @returns {Promise<object>} Full state update.
*/ */
async signMessage(msgParams) { async signMessage(msgParams) {
@ -2910,8 +2910,8 @@ export default class MetamaskController extends EventEmitter {
* *
* We currently define our eth_sign and personal_sign mostly for legacy Dapps. * We currently define our eth_sign and personal_sign mostly for legacy Dapps.
* *
* @param {Object} msgParams - The params of the message to sign & return to the Dapp. * @param {object} msgParams - The params of the message to sign & return to the Dapp.
* @param {Object} [req] - The original request, containing the origin. * @param {object} [req] - The original request, containing the origin.
*/ */
async newUnsignedPersonalMessage(msgParams, req) { async newUnsignedPersonalMessage(msgParams, req) {
const promise = this.personalMessageManager.addUnapprovedMessageAsync( const promise = this.personalMessageManager.addUnapprovedMessageAsync(
@ -2927,7 +2927,7 @@ export default class MetamaskController extends EventEmitter {
* Signifies a user's approval to sign a personal_sign message in queue. * Signifies a user's approval to sign a personal_sign message in queue.
* Triggers signing, and the callback function from newUnsignedPersonalMessage. * Triggers signing, and the callback function from newUnsignedPersonalMessage.
* *
* @param {Object} msgParams - The params of the message to sign & return to the Dapp. * @param {object} msgParams - The params of the message to sign & return to the Dapp.
* @returns {Promise<object>} A full state update. * @returns {Promise<object>} A full state update.
*/ */
async signPersonalMessage(msgParams) { async signPersonalMessage(msgParams) {
@ -2969,8 +2969,8 @@ export default class MetamaskController extends EventEmitter {
/** /**
* Called when a dapp uses the eth_decrypt method. * Called when a dapp uses the eth_decrypt method.
* *
* @param {Object} msgParams - The params of the message to sign & return to the Dapp. * @param {object} msgParams - The params of the message to sign & return to the Dapp.
* @param {Object} req - (optional) the original request, containing the origin * @param {object} req - (optional) the original request, containing the origin
* Passed back to the requesting Dapp. * Passed back to the requesting Dapp.
*/ */
async newRequestDecryptMessage(msgParams, req) { async newRequestDecryptMessage(msgParams, req) {
@ -2986,7 +2986,7 @@ export default class MetamaskController extends EventEmitter {
/** /**
* Only decrypt message and don't touch transaction state * Only decrypt message and don't touch transaction state
* *
* @param {Object} msgParams - The params of the message to decrypt. * @param {object} msgParams - The params of the message to decrypt.
* @returns {Promise<object>} A full state update. * @returns {Promise<object>} A full state update.
*/ */
async decryptMessageInline(msgParams) { async decryptMessageInline(msgParams) {
@ -3012,7 +3012,7 @@ export default class MetamaskController extends EventEmitter {
* Signifies a user's approval to decrypt a message in queue. * Signifies a user's approval to decrypt a message in queue.
* Triggers decrypt, and the callback function from newUnsignedDecryptMessage. * Triggers decrypt, and the callback function from newUnsignedDecryptMessage.
* *
* @param {Object} msgParams - The params of the message to decrypt & return to the Dapp. * @param {object} msgParams - The params of the message to decrypt & return to the Dapp.
* @returns {Promise<object>} A full state update. * @returns {Promise<object>} A full state update.
*/ */
async decryptMessage(msgParams) { async decryptMessage(msgParams) {
@ -3058,8 +3058,8 @@ export default class MetamaskController extends EventEmitter {
/** /**
* Called when a dapp uses the eth_getEncryptionPublicKey method. * Called when a dapp uses the eth_getEncryptionPublicKey method.
* *
* @param {Object} msgParams - The params of the message to sign & return to the Dapp. * @param {object} msgParams - The params of the message to sign & return to the Dapp.
* @param {Object} req - (optional) the original request, containing the origin * @param {object} req - (optional) the original request, containing the origin
* Passed back to the requesting Dapp. * Passed back to the requesting Dapp.
*/ */
async newRequestEncryptionPublicKey(msgParams, req) { async newRequestEncryptionPublicKey(msgParams, req) {
@ -3113,7 +3113,7 @@ export default class MetamaskController extends EventEmitter {
* Signifies a user's approval to receiving encryption public key in queue. * Signifies a user's approval to receiving encryption public key in queue.
* Triggers receiving, and the callback function from newUnsignedEncryptionPublicKey. * Triggers receiving, and the callback function from newUnsignedEncryptionPublicKey.
* *
* @param {Object} msgParams - The params of the message to receive & return to the Dapp. * @param {object} msgParams - The params of the message to receive & return to the Dapp.
* @returns {Promise<object>} A full state update. * @returns {Promise<object>} A full state update.
*/ */
async encryptionPublicKey(msgParams) { async encryptionPublicKey(msgParams) {
@ -3160,8 +3160,8 @@ export default class MetamaskController extends EventEmitter {
/** /**
* Called when a dapp uses the eth_signTypedData method, per EIP 712. * Called when a dapp uses the eth_signTypedData method, per EIP 712.
* *
* @param {Object} msgParams - The params passed to eth_signTypedData. * @param {object} msgParams - The params passed to eth_signTypedData.
* @param {Object} [req] - The original request, containing the origin. * @param {object} [req] - The original request, containing the origin.
* @param version * @param version
*/ */
newUnsignedTypedMessage(msgParams, req, version) { newUnsignedTypedMessage(msgParams, req, version) {
@ -3179,8 +3179,8 @@ export default class MetamaskController extends EventEmitter {
* The method for a user approving a call to eth_signTypedData, per EIP 712. * The method for a user approving a call to eth_signTypedData, per EIP 712.
* Triggers the callback in newUnsignedTypedMessage. * Triggers the callback in newUnsignedTypedMessage.
* *
* @param {Object} msgParams - The params passed to eth_signTypedData. * @param {object} msgParams - The params passed to eth_signTypedData.
* @returns {Object} Full state update. * @returns {object} Full state update.
*/ */
async signTypedMessage(msgParams) { async signTypedMessage(msgParams) {
log.info('MetaMaskController - eth_signTypedData'); log.info('MetaMaskController - eth_signTypedData');
@ -3245,7 +3245,7 @@ export default class MetamaskController extends EventEmitter {
* ).CustomGasSettings} [customGasSettings] - overrides to use for gas params * ).CustomGasSettings} [customGasSettings] - overrides to use for gas params
* instead of allowing this method to generate them * instead of allowing this method to generate them
* @param newTxMetaProps * @param newTxMetaProps
* @returns {Object} MetaMask state * @returns {object} MetaMask state
*/ */
async createCancelTransaction( async createCancelTransaction(
originalTxId, originalTxId,
@ -3272,7 +3272,7 @@ export default class MetamaskController extends EventEmitter {
* ).CustomGasSettings} [customGasSettings] - overrides to use for gas params * ).CustomGasSettings} [customGasSettings] - overrides to use for gas params
* instead of allowing this method to generate them * instead of allowing this method to generate them
* @param newTxMetaProps * @param newTxMetaProps
* @returns {Object} MetaMask state * @returns {object} MetaMask state
*/ */
async createSpeedUpTransaction( async createSpeedUpTransaction(
originalTxId, originalTxId,
@ -3331,14 +3331,14 @@ export default class MetamaskController extends EventEmitter {
* A runtime.MessageSender object, as provided by the browser: * A runtime.MessageSender object, as provided by the browser:
* *
* @see https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/MessageSender * @see https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/MessageSender
* @typedef {Object} MessageSender * @typedef {object} MessageSender
* @property {string} - The URL of the page or frame hosting the script that sent the message. * @property {string} - The URL of the page or frame hosting the script that sent the message.
*/ */
/** /**
* A Snap sender object. * A Snap sender object.
* *
* @typedef {Object} SnapSender * @typedef {object} SnapSender
* @property {string} snapId - The ID of the snap. * @property {string} snapId - The ID of the snap.
*/ */
@ -3576,7 +3576,7 @@ export default class MetamaskController extends EventEmitter {
/** /**
* A method for creating a provider that is safely restricted for the requesting subject. * A method for creating a provider that is safely restricted for the requesting subject.
* *
* @param {Object} options - Provider engine options * @param {object} options - Provider engine options
* @param {string} options.origin - The origin of the sender * @param {string} options.origin - The origin of the sender
* @param {MessageSender | SnapSender} options.sender - The sender object. * @param {MessageSender | SnapSender} options.sender - The sender object.
* @param {string} options.subjectType - The type of the sender subject. * @param {string} options.subjectType - The type of the sender subject.
@ -3800,8 +3800,8 @@ export default class MetamaskController extends EventEmitter {
* can be deleted later. * can be deleted later.
* *
* @param {string} origin - The connection's origin string. * @param {string} origin - The connection's origin string.
* @param {Object} options - Data associated with the connection * @param {object} options - Data associated with the connection
* @param {Object} options.engine - The connection's JSON Rpc Engine * @param {object} options.engine - The connection's JSON Rpc Engine
* @returns {string} The connection's id (so that it can be deleted later) * @returns {string} The connection's id (so that it can be deleted later)
*/ */
addConnection(origin, { engine }) { addConnection(origin, { engine }) {
@ -3916,7 +3916,7 @@ export default class MetamaskController extends EventEmitter {
/** /**
* Handle a KeyringController update * Handle a KeyringController update
* *
* @param {Object} state - the KC state * @param {object} state - the KC state
* @returns {Promise<void>} * @returns {Promise<void>}
* @private * @private
*/ */
@ -4102,7 +4102,7 @@ export default class MetamaskController extends EventEmitter {
* @param {string} chainId - The chainId of the selected network. * @param {string} chainId - The chainId of the selected network.
* @param {string} ticker - The ticker symbol of the selected network. * @param {string} ticker - The ticker symbol of the selected network.
* @param {string} [nickname] - Nickname of the selected network. * @param {string} [nickname] - Nickname of the selected network.
* @param {Object} [rpcPrefs] - RPC preferences. * @param {object} [rpcPrefs] - RPC preferences.
* @param {string} [rpcPrefs.blockExplorerUrl] - URL of block explorer for the chain. * @param {string} [rpcPrefs.blockExplorerUrl] - URL of block explorer for the chain.
* @returns {Promise<string>} The RPC Target URL confirmed. * @returns {Promise<string>} The RPC Target URL confirmed.
*/ */
@ -4192,8 +4192,8 @@ export default class MetamaskController extends EventEmitter {
* Returns the first RPC info object that matches at least one field of the * Returns the first RPC info object that matches at least one field of the
* provided search criteria. Returns null if no match is found * provided search criteria. Returns null if no match is found
* *
* @param {Object} rpcInfo - The RPC endpoint properties and values to check. * @param {object} rpcInfo - The RPC endpoint properties and values to check.
* @returns {Object} rpcInfo found in the frequentRpcList * @returns {object} rpcInfo found in the frequentRpcList
*/ */
findCustomRpcBy(rpcInfo) { findCustomRpcBy(rpcInfo) {
const frequentRpcListDetail = this.preferencesController.getFrequentRpcListDetail(); const frequentRpcListDetail = this.preferencesController.getFrequentRpcListDetail();
@ -4238,7 +4238,7 @@ export default class MetamaskController extends EventEmitter {
/** /**
* A method for initializing storage the first time. * A method for initializing storage the first time.
* *
* @param {Object} initState - The default state to initialize with. * @param {object} initState - The default state to initialize with.
* @private * @private
*/ */
recordFirstTimeInfo(initState) { recordFirstTimeInfo(initState) {

@ -198,7 +198,7 @@ function updateChainIds(networkEntries, chainId) {
* *
* @param localhostTokens * @param localhostTokens
* @param rpcTokens * @param rpcTokens
* @returns {Array<Object>} * @returns {Array<object>}
*/ */
function mergeTokenArrays(localhostTokens, rpcTokens) { function mergeTokenArrays(localhostTokens, rpcTokens) {
const localhostTokensMap = tokenArrayToMap(localhostTokens); const localhostTokensMap = tokenArrayToMap(localhostTokens);

@ -132,7 +132,7 @@ async function writeJson(obj, file) {
* *
* @param {BuildType} buildType - The build type. * @param {BuildType} buildType - The build type.
* @param {string} platform - The platform (i.e. the browser). * @param {string} platform - The platform (i.e. the browser).
* @returns {Object} The build modificantions for the given build type and platform. * @returns {object} The build modificantions for the given build type and platform.
*/ */
async function getBuildModifications(buildType, platform) { async function getBuildModifications(buildType, platform) {
if (!Object.values(BuildType).includes(buildType)) { if (!Object.values(BuildType).includes(buildType)) {

@ -10,7 +10,7 @@ const { BuildType } = require('../lib/build-type');
* *
* @param {string[]} platforms - A list of browsers to generate versions for. * @param {string[]} platforms - A list of browsers to generate versions for.
* @param {string} version - The current version. * @param {string} version - The current version.
* @returns {Object} An object with the browser as the key and the browser-specific version object * @returns {object} An object with the browser as the key and the browser-specific version object
* as the value. For example, the version `9.6.0-beta.1` would return the object * as the value. For example, the version `9.6.0-beta.1` would return the object
* `{ firefox: { version: '9.6.0.beta1' }, chrome: { version: '9.6.0.1', version_name: '9.6.0-beta.1' } }`. * `{ firefox: { version: '9.6.0.beta1' }, chrome: { version: '9.6.0.1', version_name: '9.6.0-beta.1' } }`.
*/ */

@ -3,7 +3,7 @@
* of retries is exceeded, whichever comes first (with an optional delay in * of retries is exceeded, whichever comes first (with an optional delay in
* between retries). * between retries).
* *
* @param {Object} args - A set of arguments and options. * @param {object} args - A set of arguments and options.
* @param {number} args.retries - The maximum number of times to re-run the * @param {number} args.retries - The maximum number of times to re-run the
* function on failure. * function on failure.
* @param {number} args.delay - The amount of time (in milliseconds) to wait in * @param {number} args.delay - The amount of time (in milliseconds) to wait in

@ -13,7 +13,7 @@ export const GAS_LIMITS = {
}; };
/** /**
* @typedef {Object} GasEstimateTypes * @typedef {object} GasEstimateTypes
* @property {'fee-market'} FEE_MARKET - A gas estimate for a fee market * @property {'fee-market'} FEE_MARKET - A gas estimate for a fee market
* transaction generated by our gas estimation API. * transaction generated by our gas estimation API.
* @property {'legacy'} LEGACY - A gas estimate for a legacy Transaction * @property {'legacy'} LEGACY - A gas estimate for a legacy Transaction

@ -9,7 +9,7 @@
* event was triggered. Also included as full details of the current page in * event was triggered. Also included as full details of the current page in
* page events. * page events.
* *
* @typedef {Object} MetaMetricsPageObject * @typedef {object} MetaMetricsPageObject
* @property {string} [path] - the path of the current page (e.g /home) * @property {string} [path] - the path of the current page (e.g /home)
* @property {string} [title] - the title of the current page (e.g 'home') * @property {string} [title] - the title of the current page (e.g 'home')
* @property {string} [url] - the fully qualified url of the current page * @property {string} [url] - the fully qualified url of the current page
@ -18,7 +18,7 @@
/** /**
* For metamask, this is the dapp that triggered an interaction * For metamask, this is the dapp that triggered an interaction
* *
* @typedef {Object} MetaMetricsReferrerObject * @typedef {object} MetaMetricsReferrerObject
* @property {string} [url] - the origin of the dapp issuing the * @property {string} [url] - the origin of the dapp issuing the
* notification * notification
*/ */
@ -31,8 +31,8 @@
* function, but still provides the consumer a way to override these values if * function, but still provides the consumer a way to override these values if
* necessary. * necessary.
* *
* @typedef {Object} MetaMetricsContext * @typedef {object} MetaMetricsContext
* @property {Object} app - Application metadata. * @property {object} app - Application metadata.
* @property {string} app.name - the name of the application tracking the event * @property {string} app.name - the name of the application tracking the event
* @property {string} app.version - the version of the application * @property {string} app.version - the version of the application
* @property {string} userAgent - the useragent string of the user * @property {string} userAgent - the useragent string of the user
@ -43,7 +43,7 @@
*/ */
/** /**
* @typedef {Object} MetaMetricsEventPayload * @typedef {object} MetaMetricsEventPayload
* @property {string} event - event name to track * @property {string} event - event name to track
* @property {string} category - category to associate event to * @property {string} category - category to associate event to
* @property {string} [environmentType] - The type of environment this event * @property {string} [environmentType] - The type of environment this event
@ -66,7 +66,7 @@
*/ */
/** /**
* @typedef {Object} MetaMetricsEventOptions * @typedef {object} MetaMetricsEventOptions
* @property {boolean} [isOptIn] - happened during opt in/out workflow * @property {boolean} [isOptIn] - happened during opt in/out workflow
* @property {boolean} [flushImmediately] - When true will automatically flush * @property {boolean} [flushImmediately] - When true will automatically flush
* the segment queue after tracking the event. Recommended if the result of * the segment queue after tracking the event. Recommended if the result of
@ -83,7 +83,7 @@
*/ */
/** /**
* @typedef {Object} MetaMetricsEventFragment * @typedef {object} MetaMetricsEventFragment
* @property {string} successEvent - The event name to fire when the fragment * @property {string} successEvent - The event name to fire when the fragment
* is closed in an affirmative action. * is closed in an affirmative action.
* @property {string} [failureEvent] - The event name to fire when the fragment * @property {string} [failureEvent] - The event name to fire when the fragment
@ -125,19 +125,19 @@
/** /**
* Represents the shape of data sent to the segment.track method. * Represents the shape of data sent to the segment.track method.
* *
* @typedef {Object} SegmentEventPayload * @typedef {object} SegmentEventPayload
* @property {string} [userId] - The metametrics id for the user * @property {string} [userId] - The metametrics id for the user
* @property {string} [anonymousId] - An anonymousId that is used to track * @property {string} [anonymousId] - An anonymousId that is used to track
* sensitive data while preserving anonymity. * sensitive data while preserving anonymity.
* @property {string} event - name of the event to track * @property {string} event - name of the event to track
* @property {Object} properties - properties to attach to the event * @property {object} properties - properties to attach to the event
* @property {MetaMetricsContext} context - the context the event occurred in * @property {MetaMetricsContext} context - the context the event occurred in
*/ */
/** /**
* @typedef {Object} MetaMetricsPagePayload * @typedef {object} MetaMetricsPagePayload
* @property {string} name - The name of the page that was viewed * @property {string} name - The name of the page that was viewed
* @property {Object} [params] - The variadic parts of the page url * @property {object} [params] - The variadic parts of the page url
* example (route: `/asset/:asset`, path: `/asset/ETH`) * example (route: `/asset/:asset`, path: `/asset/ETH`)
* params: { asset: 'ETH' } * params: { asset: 'ETH' }
* @property {EnvironmentType} environmentType - the environment type that the * @property {EnvironmentType} environmentType - the environment type that the
@ -148,14 +148,14 @@
*/ */
/** /**
* @typedef {Object} MetaMetricsPageOptions * @typedef {object} MetaMetricsPageOptions
* @property {boolean} [isOptInPath] - is the current path one of the pages in * @property {boolean} [isOptInPath] - is the current path one of the pages in
* the onboarding workflow? If true and participateInMetaMetrics is null track * the onboarding workflow? If true and participateInMetaMetrics is null track
* the page view * the page view
*/ */
/** /**
* @typedef {Object} Traits * @typedef {object} Traits
* @property {'address_book_entries'} ADDRESS_BOOK_ENTRIES - When the user * @property {'address_book_entries'} ADDRESS_BOOK_ENTRIES - When the user
* adds or modifies addresses in address book the address_book_entries trait * adds or modifies addresses in address book the address_book_entries trait
* is identified. * is identified.
@ -207,7 +207,7 @@ export const TRAITS = {
}; };
/** /**
* @typedef {Object} MetaMetricsTraits * @typedef {object} MetaMetricsTraits
* @property {number} [address_book_entries] - The number of entries in the * @property {number} [address_book_entries] - The number of entries in the
* user's address book. * user's address book.
* @property {'ledgerLive' | 'webhid' | 'u2f'} [ledger_connection_type] - the * @property {'ledgerLive' | 'webhid' | 'u2f'} [ledger_connection_type] - the
@ -252,7 +252,7 @@ export const METAMETRICS_BACKGROUND_PAGE_OBJECT = {
}; };
/** /**
* @typedef {Object} SegmentInterface * @typedef {object} SegmentInterface
* @property {SegmentEventPayload[]} queue - A queue of events to be sent when * @property {SegmentEventPayload[]} queue - A queue of events to be sent when
* the flushAt limit has been reached, or flushInterval occurs * the flushAt limit has been reached, or flushInterval occurs
* @property {() => void} flush - Immediately flush the queue, resetting it to * @property {() => void} flush - Immediately flush the queue, resetting it to

@ -10,7 +10,7 @@ export const LISTED_CONTRACT_ADDRESSES = Object.keys(
).map((address) => address.toLowerCase()); ).map((address) => address.toLowerCase());
/** /**
* @typedef {Object} TokenDetails * @typedef {object} TokenDetails
* @property {string} address - The address of the selected 'TOKEN' or * @property {string} address - The address of the selected 'TOKEN' or
* 'COLLECTIBLE' contract. * 'COLLECTIBLE' contract.
* @property {string} [symbol] - The symbol of the token. * @property {string} [symbol] - The symbol of the token.

@ -3,7 +3,7 @@ import { MESSAGE_TYPE } from './app';
/** /**
* Transaction Type is a MetaMask construct used internally * Transaction Type is a MetaMask construct used internally
* *
* @typedef {Object} TransactionTypes * @typedef {object} TransactionTypes
* @property {'transfer'} TOKEN_METHOD_TRANSFER - A token transaction where the user * @property {'transfer'} TOKEN_METHOD_TRANSFER - A token transaction where the user
* is sending tokens that they own to another address * is sending tokens that they own to another address
* @property {'transferfrom'} TOKEN_METHOD_TRANSFER_FROM - A token transaction * @property {'transferfrom'} TOKEN_METHOD_TRANSFER_FROM - A token transaction
@ -77,7 +77,7 @@ export const TRANSACTION_TYPES = {
* transaction params that were hitherto the only transaction type sent on * transaction params that were hitherto the only transaction type sent on
* Ethereum. * Ethereum.
* *
* @typedef {Object} TransactionEnvelopeTypes * @typedef {object} TransactionEnvelopeTypes
* @property {'0x0'} LEGACY - A legacy transaction, the very first type. * @property {'0x0'} LEGACY - A legacy transaction, the very first type.
* @property {'0x1'} ACCESS_LIST - EIP-2930 defined the access list transaction * @property {'0x1'} ACCESS_LIST - EIP-2930 defined the access list transaction
* type that allowed for specifying the state that a transaction would act * type that allowed for specifying the state that a transaction would act
@ -103,7 +103,7 @@ export const TRANSACTION_ENVELOPE_TYPES = {
* Transaction Status is a mix of Ethereum and MetaMask terminology, used internally * Transaction Status is a mix of Ethereum and MetaMask terminology, used internally
* for transaction processing. * for transaction processing.
* *
* @typedef {Object} TransactionStatuses * @typedef {object} TransactionStatuses
* @property {'unapproved'} UNAPPROVED - A new transaction that the user has not * @property {'unapproved'} UNAPPROVED - A new transaction that the user has not
* approved or rejected * approved or rejected
* @property {'approved'} APPROVED - The user has approved the transaction in the * @property {'approved'} APPROVED - The user has approved the transaction in the
@ -155,7 +155,7 @@ export const IN_PROGRESS_TRANSACTION_STATUSES = [
* Transaction Group Status is a MetaMask construct to track the status of groups * Transaction Group Status is a MetaMask construct to track the status of groups
* of transactions. * of transactions.
* *
* @typedef {Object} TransactionGroupStatuses * @typedef {object} TransactionGroupStatuses
* @property {'cancelled'} CANCELLED - A cancel type transaction in the group was * @property {'cancelled'} CANCELLED - A cancel type transaction in the group was
* confirmed * confirmed
* @property {'pending'} PENDING - The primaryTransaction of the group has a status * @property {'pending'} PENDING - The primaryTransaction of the group has a status
@ -174,7 +174,7 @@ export const TRANSACTION_GROUP_STATUSES = {
/** /**
* Statuses that are specific to Smart Transactions. * Statuses that are specific to Smart Transactions.
* *
* @typedef {Object} SmartTransactionStatuses * @typedef {object} SmartTransactionStatuses
* @property {'cancelled'} CANCELLED - It can be cancelled for various reasons. * @property {'cancelled'} CANCELLED - It can be cancelled for various reasons.
* @property {'pending'} PENDING - Smart transaction is being processed. * @property {'pending'} PENDING - Smart transaction is being processed.
* @property {'success'} SUCCESS - Smart transaction was successfully mined. * @property {'success'} SUCCESS - Smart transaction was successfully mined.
@ -193,7 +193,7 @@ export const SMART_TRANSACTION_STATUSES = {
* Transaction Group Category is a MetaMask construct to categorize the intent * Transaction Group Category is a MetaMask construct to categorize the intent
* of a group of transactions for purposes of displaying in the UI * of a group of transactions for purposes of displaying in the UI
* *
* @typedef {Object} TransactionGroupCategories * @typedef {object} TransactionGroupCategories
* @property {'send'} SEND - Transaction group representing ether being sent from * @property {'send'} SEND - Transaction group representing ether being sent from
* the user. * the user.
* @property {'receive'} RECEIVE - Transaction group representing a deposit/incoming * @property {'receive'} RECEIVE - Transaction group representing a deposit/incoming
@ -226,7 +226,7 @@ export const TRANSACTION_GROUP_CATEGORIES = {
}; };
/** /**
* @typedef {Object} TxParams * @typedef {object} TxParams
* @property {string} from - The address the transaction is sent from * @property {string} from - The address the transaction is sent from
* @property {string} to - The address the transaction is sent to * @property {string} to - The address the transaction is sent to
* @property {string} value - The amount of wei, in hexadecimal, to send * @property {string} value - The amount of wei, in hexadecimal, to send
@ -237,7 +237,7 @@ export const TRANSACTION_GROUP_CATEGORIES = {
*/ */
/** /**
* @typedef {Object} TxError * @typedef {object} TxError
* @property {string} message - The message from the encountered error. * @property {string} message - The message from the encountered error.
* @property {any} rpc - The "value" of the error. * @property {any} rpc - The "value" of the error.
* @property {string} [stack] - the stack trace from the error, if available. * @property {string} [stack] - the stack trace from the error, if available.
@ -246,7 +246,7 @@ export const TRANSACTION_GROUP_CATEGORIES = {
/** /**
* An object representing a transaction, in whatever state it is in. * An object representing a transaction, in whatever state it is in.
* *
* @typedef {Object} TransactionMeta * @typedef {object} TransactionMeta
* @property {string} [blockNumber] - The block number this transaction was * @property {string} [blockNumber] - The block number this transaction was
* included in. Currently only present on incoming transactions! * included in. Currently only present on incoming transactions!
* @property {number} id - An internally unique tx identifier. * @property {number} id - An internally unique tx identifier.
@ -263,7 +263,7 @@ export const TRANSACTION_GROUP_CATEGORIES = {
* @property {boolean} loadingDefaults - TODO: Document * @property {boolean} loadingDefaults - TODO: Document
* @property {TxParams} txParams - The transaction params as passed to the * @property {TxParams} txParams - The transaction params as passed to the
* network provider. * network provider.
* @property {Object[]} history - A history of mutations to this * @property {object[]} history - A history of mutations to this
* TransactionMeta object. * TransactionMeta object.
* @property {string} origin - A string representing the interface that * @property {string} origin - A string representing the interface that
* suggested the transaction. * suggested the transaction.
@ -271,7 +271,7 @@ export const TRANSACTION_GROUP_CATEGORIES = {
* gas estimation on the transaction metadata. * gas estimation on the transaction metadata.
* @property {boolean} userEditedGasLimit - A boolean representing when the * @property {boolean} userEditedGasLimit - A boolean representing when the
* user manually edited the gas limit. * user manually edited the gas limit.
* @property {Object} nonceDetails - A metadata object containing information * @property {object} nonceDetails - A metadata object containing information
* used to derive the suggested nonce, useful for debugging nonce issues. * used to derive the suggested nonce, useful for debugging nonce issues.
* @property {string} rawTx - A hex string of the final signed transaction, * @property {string} rawTx - A hex string of the final signed transaction,
* ready to submit to the network. * ready to submit to the network.
@ -285,7 +285,7 @@ export const TRANSACTION_GROUP_CATEGORIES = {
/** /**
* Defines the possible types * Defines the possible types
* *
* @typedef {Object} TransactionMetaMetricsEvents * @typedef {object} TransactionMetaMetricsEvents
* @property {'Transaction Added'} ADDED - All transactions, except incoming * @property {'Transaction Added'} ADDED - All transactions, except incoming
* ones, are added to the controller state in an unapproved status. When this * ones, are added to the controller state in an unapproved status. When this
* happens we fire the Transaction Added event to show that the transaction * happens we fire the Transaction Added event to show that the transaction
@ -329,7 +329,7 @@ export const TRANSACTION_EVENTS = {
}; };
/** /**
* @typedef {Object} AssetTypes * @typedef {object} AssetTypes
* @property {'NATIVE'} NATIVE - The native asset for the current network, such * @property {'NATIVE'} NATIVE - The native asset for the current network, such
* as ETH * as ETH
* @property {'TOKEN'} TOKEN - An ERC20 token. * @property {'TOKEN'} TOKEN - An ERC20 token.
@ -363,7 +363,7 @@ export const ERC721 = 'ERC721';
export const ERC1155 = 'ERC1155'; export const ERC1155 = 'ERC1155';
/** /**
* @typedef {Object} TokenStandards * @typedef {object} TokenStandards
* @property {'ERC20'} ERC20 - A token that conforms to the ERC20 standard. * @property {'ERC20'} ERC20 - A token that conforms to the ERC20 standard.
* @property {'ERC721'} ERC721 - A token that conforms to the ERC721 standard. * @property {'ERC721'} ERC721 - A token that conforms to the ERC721 standard.
* @property {'ERC1155'} ERC1155 - A token that conforms to the ERC1155 * @property {'ERC1155'} ERC1155 - A token that conforms to the ERC1155

@ -6,7 +6,7 @@
* currency. It should return a single value. * currency. It should return a single value.
* *
* @param {(number | string | BN)} value - The value to convert. * @param {(number | string | BN)} value - The value to convert.
* @param {Object} [options] - Options to specify details of the conversion * @param {object} [options] - Options to specify details of the conversion
* @param {string} [options.fromCurrency = 'ETH' | 'USD'] - The currency of the passed value * @param {string} [options.fromCurrency = 'ETH' | 'USD'] - The currency of the passed value
* @param {string} [options.toCurrency = 'ETH' | 'USD'] - The desired currency of the result * @param {string} [options.toCurrency = 'ETH' | 'USD'] - The desired currency of the result
* @param {string} [options.fromNumericBase = 'hex' | 'dec' | 'BN'] - The numeric basic of the passed value. * @param {string} [options.fromNumericBase = 'hex' | 'dec' | 'BN'] - The numeric basic of the passed value.
@ -73,7 +73,7 @@ const isValidBase = (base) => {
/** /**
* Utility method to convert a value between denominations, formats and currencies. * Utility method to convert a value between denominations, formats and currencies.
* *
* @param {Object} input * @param {object} input
* @param {string | BigNumber} input.value * @param {string | BigNumber} input.value
* @param {NumericBase} input.fromNumericBase * @param {NumericBase} input.fromNumericBase
* @param {EthDenomination} [input.fromDenomination] * @param {EthDenomination} [input.fromDenomination]

@ -23,7 +23,7 @@ export function isBurnAddress(address) {
* provided this method will validate it has the proper checksum formatting. * provided this method will validate it has the proper checksum formatting.
* *
* @param {string} possibleAddress - Input parameter to check against * @param {string} possibleAddress - Input parameter to check against
* @param {Object} [options] - options bag * @param {object} [options] - options bag
* @param {boolean} [options.allowNonPrefixed] - If true will first ensure '0x' * @param {boolean} [options.allowNonPrefixed] - If true will first ensure '0x'
* is prepended to the string * is prepended to the string
* @param {boolean} [options.mixedCaseUseChecksum] - If true will treat mixed * @param {boolean} [options.mixedCaseUseChecksum] - If true will treat mixed

@ -7,7 +7,7 @@
* should be included, and a sub-mask implies the property should be further * should be included, and a sub-mask implies the property should be further
* masked according to that sub-mask. * masked according to that sub-mask.
* *
* @param {Object} object - The object to mask * @param {object} object - The object to mask
* @param {Object<object | boolean>} mask - The mask to apply to the object * @param {Object<object | boolean>} mask - The mask to apply to the object
*/ */
export function maskObject(object, mask) { export function maskObject(object, mask) {

@ -15,7 +15,7 @@ import { isEqualCaseInsensitive } from './string-utils';
*/ */
/** /**
* @typedef {Object} InferTransactionTypeResult * @typedef {object} InferTransactionTypeResult
* @property {InferrableTransactionTypes} type - The type of transaction * @property {InferrableTransactionTypes} type - The type of transaction
* @property {string} getCodeResponse - The contract code, in hex format if * @property {string} getCodeResponse - The contract code, in hex format if
* it exists. '0x0' or '0x' are also indicators of non-existent contract * it exists. '0x0' or '0x' are also indicators of non-existent contract
@ -138,7 +138,7 @@ export function parseStandardTokenTransactionData(data) {
* represent specific events that we control from the extension and are added manually * represent specific events that we control from the extension and are added manually
* at transaction creation. * at transaction creation.
* *
* @param {Object} txParams - Parameters for the transaction * @param {object} txParams - Parameters for the transaction
* @param {EthQuery} query - EthQuery instance * @param {EthQuery} query - EthQuery instance
* @returns {InferTransactionTypeResult} * @returns {InferTransactionTypeResult}
*/ */

@ -7,9 +7,9 @@ const cssToXPath = require('css-to-xpath');
* Temporary workaround to patch selenium's element handle API with methods * Temporary workaround to patch selenium's element handle API with methods
* that match the playwright API for Elements * that match the playwright API for Elements
* *
* @param {Object} element - Selenium Element * @param {object} element - Selenium Element
* @param driver * @param driver
* @returns {Object} modified Selenium Element * @returns {object} modified Selenium Element
*/ */
function wrapElementWithAPI(element, driver) { function wrapElementWithAPI(element, driver) {
element.press = (key) => element.sendKeys(key); element.press = (key) => element.sendKeys(key);

@ -27,7 +27,7 @@ class FirefoxDriver {
/** /**
* Builds a {@link FirefoxDriver} instance * Builds a {@link FirefoxDriver} instance
* *
* @param {Object} options - the options for the build * @param {object} options - the options for the build
* @param options.responsive * @param options.responsive
* @param options.port * @param options.port
* @returns {Promise<{driver: !ThenableWebDriver, extensionUrl: string, extensionId: string}>} * @returns {Promise<{driver: !ThenableWebDriver, extensionUrl: string, extensionId: string}>}

@ -13,7 +13,7 @@ const DEFAULT_TIMEOUT = 10000;
* @param {import('sinon').stub} stub - A sinon stub of a function * @param {import('sinon').stub} stub - A sinon stub of a function
* @param {unknown} [wrappedThis] - The object the stubbed function was called * @param {unknown} [wrappedThis] - The object the stubbed function was called
* on, if any (i.e. the `this` value) * on, if any (i.e. the `this` value)
* @param {Object} [options] - Optional configuration * @param {object} [options] - Optional configuration
* @param {number} [options.callCount] - The number of calls to wait for. * @param {number} [options.callCount] - The number of calls to wait for.
* @param {number|null} [options.timeout] - The timeout, in milliseconds. Pass * @param {number|null} [options.timeout] - The timeout, in milliseconds. Pass
* in `null` to disable the timeout. * in `null` to disable the timeout.

@ -49,7 +49,7 @@ const CAVEATS = {
* Gets a correctly formatted eth_accounts restrictReturnedAccounts caveat. * Gets a correctly formatted eth_accounts restrictReturnedAccounts caveat.
* *
* @param {Array<string>} accounts - The accounts for the caveat * @param {Array<string>} accounts - The accounts for the caveat
* @returns {Object} An eth_accounts restrictReturnedAccounts caveats * @returns {object} An eth_accounts restrictReturnedAccounts caveats
*/ */
eth_accounts: (accounts) => { eth_accounts: (accounts) => {
return [ return [
@ -71,21 +71,21 @@ const PERMS = {
*/ */
requests: { requests: {
/** /**
* @returns {Object} A permissions request object with eth_accounts * @returns {object} A permissions request object with eth_accounts
*/ */
eth_accounts: () => { eth_accounts: () => {
return { eth_accounts: {} }; return { eth_accounts: {} };
}, },
/** /**
* @returns {Object} A permissions request object with test_method * @returns {object} A permissions request object with test_method
*/ */
test_method: () => { test_method: () => {
return { test_method: {} }; return { test_method: {} };
}, },
/** /**
* @returns {Object} A permissions request object with does_not_exist * @returns {object} A permissions request object with does_not_exist
*/ */
does_not_exist: () => { does_not_exist: () => {
return { does_not_exist: {} }; return { does_not_exist: {} };
@ -100,7 +100,7 @@ const PERMS = {
granted: { granted: {
/** /**
* @param {Array<string>} accounts - The accounts for the eth_accounts permission caveat * @param {Array<string>} accounts - The accounts for the eth_accounts permission caveat
* @returns {Object} A granted permissions object with eth_accounts and its caveat * @returns {object} A granted permissions object with eth_accounts and its caveat
*/ */
eth_accounts: (accounts) => { eth_accounts: (accounts) => {
return { return {
@ -110,7 +110,7 @@ const PERMS = {
}, },
/** /**
* @returns {Object} A granted permissions object with test_method * @returns {object} A granted permissions object with test_method
*/ */
test_method: () => { test_method: () => {
return { return {
@ -138,7 +138,7 @@ export const getters = deepFreeze({
* @param {string} method - The request method * @param {string} method - The request method
* @param {Array<any>} params - The request parameters * @param {Array<any>} params - The request parameters
* @param {string} [id] - The request id * @param {string} [id] - The request id
* @returns {Object} An RPC request object * @returns {object} An RPC request object
*/ */
custom: (origin, method, params = [], id) => { custom: (origin, method, params = [], id) => {
const req = { const req = {
@ -156,7 +156,7 @@ export const getters = deepFreeze({
* Gets an eth_accounts RPC request object. * Gets an eth_accounts RPC request object.
* *
* @param {string} origin - The origin of the request * @param {string} origin - The origin of the request
* @returns {Object} An RPC request object * @returns {object} An RPC request object
*/ */
eth_accounts: (origin) => { eth_accounts: (origin) => {
return { return {
@ -171,7 +171,7 @@ export const getters = deepFreeze({
* *
* @param {string} origin - The origin of the request * @param {string} origin - The origin of the request
* @param {boolean} param - The request param * @param {boolean} param - The request param
* @returns {Object} An RPC request object * @returns {object} An RPC request object
*/ */
test_method: (origin, param = false) => { test_method: (origin, param = false) => {
return { return {
@ -185,7 +185,7 @@ export const getters = deepFreeze({
* Gets an eth_requestAccounts RPC request object. * Gets an eth_requestAccounts RPC request object.
* *
* @param {string} origin - The origin of the request * @param {string} origin - The origin of the request
* @returns {Object} An RPC request object * @returns {object} An RPC request object
*/ */
eth_requestAccounts: (origin) => { eth_requestAccounts: (origin) => {
return { return {
@ -201,7 +201,7 @@ export const getters = deepFreeze({
* *
* @param {string} origin - The origin of the request * @param {string} origin - The origin of the request
* @param {string} permissionName - The name of the permission to request * @param {string} permissionName - The name of the permission to request
* @returns {Object} An RPC request object * @returns {object} An RPC request object
*/ */
requestPermission: (origin, permissionName) => { requestPermission: (origin, permissionName) => {
return { return {
@ -216,8 +216,8 @@ export const getters = deepFreeze({
* for multiple permissions. * for multiple permissions.
* *
* @param {string} origin - The origin of the request * @param {string} origin - The origin of the request
* @param {Object} permissions - A permission request object * @param {object} permissions - A permission request object
* @returns {Object} An RPC request object * @returns {object} An RPC request object
*/ */
requestPermissions: (origin, permissions = {}) => { requestPermissions: (origin, permissions = {}) => {
return { return {
@ -231,9 +231,9 @@ export const getters = deepFreeze({
* Gets a metamask_sendDomainMetadata RPC request object. * Gets a metamask_sendDomainMetadata RPC request object.
* *
* @param {string} origin - The origin of the request * @param {string} origin - The origin of the request
* @param {Object} name - The subjectMetadata name * @param {object} name - The subjectMetadata name
* @param {Array<any>} [args] - Any other data for the request's subjectMetadata * @param {Array<any>} [args] - Any other data for the request's subjectMetadata
* @returns {Object} An RPC request object * @returns {object} An RPC request object
*/ */
metamask_sendDomainMetadata: (origin, name, ...args) => { metamask_sendDomainMetadata: (origin, name, ...args) => {
return { return {

@ -44,7 +44,7 @@ const statusHash = {
/** /**
* @name getActivities * @name getActivities
* @param {Object} transaction - txMeta object * @param {object} transaction - txMeta object
* @param {boolean} isFirstTransaction - True if the transaction is the first created transaction * @param {boolean} isFirstTransaction - True if the transaction is the first created transaction
* in the list of transactions with the same nonce. If so, we use this transaction to create the * in the list of transactions with the same nonce. If so, we use this transaction to create the
* transactionCreated activity. * transactionCreated activity.

@ -11,7 +11,7 @@ import TransactionListItem from '.';
*/ */
/** /**
* @param {Object} args * @param {object} args
* @returns {TransactionGroup} * @returns {TransactionGroup}
*/ */
const getMockTransactionGroup = (args) => { const getMockTransactionGroup = (args) => {

@ -4,10 +4,10 @@ import PropTypes from 'prop-types';
/** /**
* @deprecated - Please use ActionableMessage type danger * @deprecated - Please use ActionableMessage type danger
* @see ActionableMessage * @see ActionableMessage
* @param {Object} props * @param {object} props
* @param {string} props.errorMessage * @param {string} props.errorMessage
* @param {string} props.errorKey * @param {string} props.errorKey
* @param {Object} context * @param {object} context
*/ */
const ErrorMessage = (props, context) => { const ErrorMessage = (props, context) => {
const { errorMessage, errorKey } = props; const { errorMessage, errorKey } = props;

@ -400,7 +400,7 @@ export function getSeedPhraseBackedUp(state) {
/** /**
* Given the redux state object and an address, finds a keyring that contains that address, if one exists * Given the redux state object and an address, finds a keyring that contains that address, if one exists
* *
* @param {Object} state - the redux state object * @param {object} state - the redux state object
* @param {string} address - the address to search for among the keyring addresses * @param {string} address - the address to search for among the keyring addresses
* @returns {object | undefined} The keyring which contains the passed address, or undefined * @returns {object | undefined} The keyring which contains the passed address, or undefined
*/ */
@ -420,7 +420,7 @@ export function findKeyringForAddress(state, address) {
/** /**
* Given the redux state object, returns the users preferred ledger transport type * Given the redux state object, returns the users preferred ledger transport type
* *
* @param {Object} state - the redux state object * @param {object} state - the redux state object
* @returns {string} The users preferred ledger transport type. One of'ledgerLive', 'webhid' or 'u2f' * @returns {string} The users preferred ledger transport type. One of'ledgerLive', 'webhid' or 'u2f'
*/ */
export function getLedgerTransportType(state) { export function getLedgerTransportType(state) {
@ -430,7 +430,7 @@ export function getLedgerTransportType(state) {
/** /**
* Given the redux state object and an address, returns a boolean indicating whether the passed address is part of a Ledger keyring * Given the redux state object and an address, returns a boolean indicating whether the passed address is part of a Ledger keyring
* *
* @param {Object} state - the redux state object * @param {object} state - the redux state object
* @param {string} address - the address to search for among all keyring addresses * @param {string} address - the address to search for among all keyring addresses
* @returns {boolean} true if the passed address is part of a ledger keyring, and false otherwise * @returns {boolean} true if the passed address is part of a ledger keyring, and false otherwise
*/ */
@ -444,7 +444,7 @@ export function isAddressLedger(state, address) {
* Given the redux state object, returns a boolean indicating whether the user has any Ledger accounts added to MetaMask (i.e. Ledger keyrings * Given the redux state object, returns a boolean indicating whether the user has any Ledger accounts added to MetaMask (i.e. Ledger keyrings
* in state) * in state)
* *
* @param {Object} state - the redux state object * @param {object} state - the redux state object
* @returns {boolean} true if the user has a Ledger account and false otherwise * @returns {boolean} true if the user has a Ledger account and false otherwise
*/ */
export function doesUserHaveALedgerAccount(state) { export function doesUserHaveALedgerAccount(state) {

@ -162,7 +162,7 @@ import {
*/ */
/** /**
* @typedef {Object} SendStateStages * @typedef {object} SendStateStages
* @property {'ADD_RECIPIENT'} ADD_RECIPIENT - The user is selecting which * @property {'ADD_RECIPIENT'} ADD_RECIPIENT - The user is selecting which
* address to send an asset to. * address to send an asset to.
* @property {'DRAFT'} DRAFT - The send form is shown for a transaction yet to * @property {'DRAFT'} DRAFT - The send form is shown for a transaction yet to
@ -188,7 +188,7 @@ export const SEND_STAGES = {
}; };
/** /**
* @typedef {Object} DraftTxStatus * @typedef {object} DraftTxStatus
* @property {'INVALID'} INVALID - The transaction is invalid and cannot be * @property {'INVALID'} INVALID - The transaction is invalid and cannot be
* submitted. There are a number of cases that would result in an invalid * submitted. There are a number of cases that would result in an invalid
* send state: * send state:
@ -213,7 +213,7 @@ export const SEND_STATUSES = {
}; };
/** /**
* @typedef {Object} SendStateGasModes * @typedef {object} SendStateGasModes
* @property {'BASIC'} BASIC - Shows the basic estimate slow/avg/fast buttons * @property {'BASIC'} BASIC - Shows the basic estimate slow/avg/fast buttons
* when on mainnet and the metaswaps API request is successful. * when on mainnet and the metaswaps API request is successful.
* @property {'CUSTOM'} CUSTOM - Shows GasFeeDisplay component that is a read * @property {'CUSTOM'} CUSTOM - Shows GasFeeDisplay component that is a read
@ -235,7 +235,7 @@ export const GAS_INPUT_MODES = {
}; };
/** /**
* @typedef {Object} SendStateAmountModes * @typedef {object} SendStateAmountModes
* @property {'INPUT'} INPUT - the user provides the amount by typing in the * @property {'INPUT'} INPUT - the user provides the amount by typing in the
* field. * field.
* @property {'MAX'} MAX - The user selects the MAX button and amount is * @property {'MAX'} MAX - The user selects the MAX button and amount is
@ -253,7 +253,7 @@ export const AMOUNT_MODES = {
}; };
/** /**
* @typedef {Object} SendStateRecipientModes * @typedef {object} SendStateRecipientModes
* @property {'CONTACT_LIST'} CONTACT_LIST - The user is displayed a list of * @property {'CONTACT_LIST'} CONTACT_LIST - The user is displayed a list of
* their contacts and addresses they have recently send to. * their contacts and addresses they have recently send to.
* @property {'MY_ACCOUNTS'} MY_ACCOUNTS - the user is displayed a list of * @property {'MY_ACCOUNTS'} MY_ACCOUNTS - the user is displayed a list of
@ -271,21 +271,21 @@ export const RECIPIENT_SEARCH_MODES = {
}; };
/** /**
* @typedef {Object} Account * @typedef {object} Account
* @property {string} address - The hex address of the account. * @property {string} address - The hex address of the account.
* @property {string} balance - Hex string representing the native asset * @property {string} balance - Hex string representing the native asset
* balance of the account the transaction will be sent from. * balance of the account the transaction will be sent from.
*/ */
/** /**
* @typedef {Object} Amount * @typedef {object} Amount
* @property {string} [error] - Error to display for the amount field. * @property {string} [error] - Error to display for the amount field.
* @property {string} value - A hex string representing the amount of the * @property {string} value - A hex string representing the amount of the
* selected currency to send. * selected currency to send.
*/ */
/** /**
* @typedef {Object} Asset * @typedef {object} Asset
* @property {string} balance - A hex string representing the balance * @property {string} balance - A hex string representing the balance
* that the user holds of the asset that they are attempting to send. * that the user holds of the asset that they are attempting to send.
* @property {TokenDetails} [details] - An object that describes the * @property {TokenDetails} [details] - An object that describes the
@ -299,7 +299,7 @@ export const RECIPIENT_SEARCH_MODES = {
*/ */
/** /**
* @typedef {Object} GasFees * @typedef {object} GasFees
* @property {string} [error] - error to display for gas fields. * @property {string} [error] - error to display for gas fields.
* @property {string} gasLimit - maximum gas needed for tx. * @property {string} gasLimit - maximum gas needed for tx.
* @property {string} gasPrice - price in wei to pay per gas. * @property {string} gasPrice - price in wei to pay per gas.
@ -312,7 +312,7 @@ export const RECIPIENT_SEARCH_MODES = {
/** /**
* An object that describes the intended recipient of a transaction. * An object that describes the intended recipient of a transaction.
* *
* @typedef {Object} Recipient * @typedef {object} Recipient
* @property {string} address - The fully qualified address of the recipient. * @property {string} address - The fully qualified address of the recipient.
* This is set after the recipient.userInput is validated, the userInput field * This is set after the recipient.userInput is validated, the userInput field
* is quickly updated to avoid delay between keystrokes and seeing the input * is quickly updated to avoid delay between keystrokes and seeing the input
@ -327,7 +327,7 @@ export const RECIPIENT_SEARCH_MODES = {
*/ */
/** /**
* @typedef {Object} DraftTransaction * @typedef {object} DraftTransaction
* @property {Amount} amount - An object containing information about the * @property {Amount} amount - An object containing information about the
* amount of currency to send. * amount of currency to send.
* @property {Asset} asset - An object that describes the asset that the user * @property {Asset} asset - An object that describes the asset that the user
@ -398,7 +398,7 @@ export const draftTransactionInitialState = {
/** /**
* Describes the state tree of the send slice * Describes the state tree of the send slice
* *
* @typedef {Object} SendState * @typedef {object} SendState
* @property {MapValuesToUnion<SendStateAmountModes>} amountMode - Describe * @property {MapValuesToUnion<SendStateAmountModes>} amountMode - Describe
* whether the user has manually input an amount or if they have selected max * whether the user has manually input an amount or if they have selected max
* to send the maximum amount of the selected currency. * to send the maximum amount of the selected currency.
@ -471,9 +471,9 @@ export const initialState = {
* typescript conversions. The metamask key is typed as an object on purpose * typescript conversions. The metamask key is typed as an object on purpose
* here because I cannot go so far in this work as to type that entire object. * here because I cannot go so far in this work as to type that entire object.
* *
* @typedef {Object} MetaMaskState * @typedef {object} MetaMaskState
* @property {SendState} send - The state of the send flow. * @property {SendState} send - The state of the send flow.
* @property {Object} metamask - The state of the metamask store. * @property {object} metamask - The state of the metamask store.
*/ */
const name = 'send'; const name = 'send';
@ -554,7 +554,7 @@ export const computeEstimatedGasLimit = createAsyncThunk(
); );
/** /**
* @typedef {Object} Asset * @typedef {object} Asset
* @property {AssetTypesString} type - The type of asset that the user * @property {AssetTypesString} type - The type of asset that the user
* is attempting to send. Defaults to 'NATIVE' which represents the native * is attempting to send. Defaults to 'NATIVE' which represents the native
* asset of the chain. Can also be 'TOKEN' or 'COLLECTIBLE'. * asset of the chain. Can also be 'TOKEN' or 'COLLECTIBLE'.
@ -581,8 +581,8 @@ export const initializeSendState = createAsyncThunk(
'send/initializeSendState', 'send/initializeSendState',
async ({ chainHasChanged = false } = {}, thunkApi) => { async ({ chainHasChanged = false } = {}, thunkApi) => {
/** /**
* @typedef {Object} ReduxState * @typedef {object} ReduxState
* @property {Object} metamask - Half baked type for the MetaMask object * @property {object} metamask - Half baked type for the MetaMask object
* @property {SendState} send - the send state * @property {SendState} send - the send state
*/ */
@ -717,7 +717,7 @@ export const initializeSendState = createAsyncThunk(
*/ */
/** /**
* @typedef {Object} GasFeeUpdateParams * @typedef {object} GasFeeUpdateParams
* @property {TransactionTypeString} transactionType - The transaction type * @property {TransactionTypeString} transactionType - The transaction type
* @property {string} [maxFeePerGas] - The maximum amount in hex wei to pay * @property {string} [maxFeePerGas] - The maximum amount in hex wei to pay
* per gas on a FEE_MARKET transaction. * per gas on a FEE_MARKET transaction.
@ -734,7 +734,7 @@ export const initializeSendState = createAsyncThunk(
*/ */
/** /**
* @typedef {Object} GasEstimateUpdateParams * @typedef {object} GasEstimateUpdateParams
* @property {GasEstimateType} gasEstimateType - The type of gas estimation * @property {GasEstimateType} gasEstimateType - The type of gas estimation
* provided by the controller. * provided by the controller.
* @property {( * @property {(
@ -1804,7 +1804,7 @@ export function updateGasPrice(gasPrice) {
* (temporary) send state recipient nickname is consistent with the address book * (temporary) send state recipient nickname is consistent with the address book
* nickname which has already been persisted to state. * nickname which has already been persisted to state.
* *
* @param {Object} recipient - Recipient information * @param {object} recipient - Recipient information
* @param {string} recipient.address - hex address to send the transaction to * @param {string} recipient.address - hex address to send the transaction to
* @param {string} [recipient.nickname] - Alias for the address to display * @param {string} [recipient.nickname] - Alias for the address to display
* to the user * to the user
@ -1950,7 +1950,7 @@ export function updateSendAmount(amount) {
* object with the appropriate ERC20 details including address, symbol and * object with the appropriate ERC20 details including address, symbol and
* decimals. * decimals.
* *
* @param {Object} payload - action payload * @param {object} payload - action payload
* @param {string} payload.type - type of asset to send * @param {string} payload.type - type of asset to send
* @param {TokenDetails} [payload.details] - ERC20 details if sending TOKEN asset * @param {TokenDetails} [payload.details] - ERC20 details if sending TOKEN asset
* @returns {ThunkAction<void>} * @returns {ThunkAction<void>}

@ -15,7 +15,7 @@ const missingSubstitutionErrors = {};
* Returns a localized message for the given key * Returns a localized message for the given key
* *
* @param {string} localeCode - The code for the current locale * @param {string} localeCode - The code for the current locale
* @param {Object} localeMessages - The map of messages for the current locale * @param {object} localeMessages - The map of messages for the current locale
* @param {string} key - The message key * @param {string} key - The message key
* @param {string[]} substitutions - A list of message substitution replacements * @param {string[]} substitutions - A list of message substitution replacements
* @returns {null|string} The localized message * @returns {null|string} The localized message

@ -73,7 +73,7 @@ const PERMISSION_DESCRIPTIONS = deepFreeze({
}); });
/** /**
* @typedef {Object} PermissionLabelObject * @typedef {object} PermissionLabelObject
* @property {string} label - The text label. * @property {string} label - The text label.
* @property {string} leftIcon - The left icon. * @property {string} leftIcon - The left icon.
* @property {string} rightIcon - The right icon. * @property {string} rightIcon - The right icon.

@ -131,7 +131,7 @@ export function calcTokenValue(value, decimals) {
* - The '_to' parameter, if present * - The '_to' parameter, if present
* - The first parameter, if present * - The first parameter, if present
* *
* @param {Object} tokenData - ethers Interface token data. * @param {object} tokenData - ethers Interface token data.
* @returns {string | undefined} A lowercase address string. * @returns {string | undefined} A lowercase address string.
*/ */
export function getTokenAddressParam(tokenData = {}) { export function getTokenAddressParam(tokenData = {}) {
@ -144,7 +144,7 @@ export function getTokenAddressParam(tokenData = {}) {
* Gets the '_value' parameter of the given token transaction data * Gets the '_value' parameter of the given token transaction data
* (i.e function call) per the Human Standard Token ABI, if present. * (i.e function call) per the Human Standard Token ABI, if present.
* *
* @param {Object} tokenData - ethers Interface token data. * @param {object} tokenData - ethers Interface token data.
* @returns {string | undefined} A decimal string value. * @returns {string | undefined} A decimal string value.
*/ */
export function getTokenValueParam(tokenData = {}) { export function getTokenValueParam(tokenData = {}) {
@ -156,7 +156,7 @@ export function getTokenValueParam(tokenData = {}) {
* These are the parsed tokenId values returned by `parseStandardTokenTransactionData` as defined * These are the parsed tokenId values returned by `parseStandardTokenTransactionData` as defined
* in the ERC721 and ERC1155 ABIs from metamask-eth-abis (https://github.com/MetaMask/metamask-eth-abis/tree/main/src/abis) * in the ERC721 and ERC1155 ABIs from metamask-eth-abis (https://github.com/MetaMask/metamask-eth-abis/tree/main/src/abis)
* *
* @param {Object} tokenData - ethers Interface token data. * @param {object} tokenData - ethers Interface token data.
* @returns {string | undefined} A decimal string value. * @returns {string | undefined} A decimal string value.
*/ */
export function getTokenIdParam(tokenData = {}) { export function getTokenIdParam(tokenData = {}) {
@ -169,7 +169,7 @@ export function getTokenIdParam(tokenData = {}) {
* Gets the '_approved' parameter of the given token transaction data * Gets the '_approved' parameter of the given token transaction data
* (i.e function call) per the Human Standard Token ABI, if present. * (i.e function call) per the Human Standard Token ABI, if present.
* *
* @param {Object} tokenData - ethers Interface token data. * @param {object} tokenData - ethers Interface token data.
* @returns {boolean | undefined} A boolean indicating whether the function is being called to approve or revoke access. * @returns {boolean | undefined} A boolean indicating whether the function is being called to approve or revoke access.
*/ */
export function getTokenApprovedParam(tokenData = {}) { export function getTokenApprovedParam(tokenData = {}) {

@ -49,7 +49,7 @@ let registry;
* Attempts to return the method data from the MethodRegistry library, the message registry library and the token abi, in that order of preference * Attempts to return the method data from the MethodRegistry library, the message registry library and the token abi, in that order of preference
* *
* @param {string} fourBytePrefix - The prefix from the method code associated with the data * @param {string} fourBytePrefix - The prefix from the method code associated with the data
* @returns {Object} * @returns {object}
*/ */
export async function getMethodDataAsync(fourBytePrefix) { export async function getMethodDataAsync(fourBytePrefix) {
try { try {
@ -152,8 +152,8 @@ export function isLegacyTransaction(txParams) {
* Returns a status key for a transaction. Requires parsing the txMeta.txReceipt on top of * Returns a status key for a transaction. Requires parsing the txMeta.txReceipt on top of
* txMeta.status because txMeta.status does not reflect on-chain errors. * txMeta.status because txMeta.status does not reflect on-chain errors.
* *
* @param {Object} transaction - The txMeta object of a transaction. * @param {object} transaction - The txMeta object of a transaction.
* @param {Object} transaction.txReceipt - The transaction receipt. * @param {object} transaction.txReceipt - The transaction receipt.
* @returns {string} * @returns {string}
*/ */
export function getStatusKey(transaction) { export function getStatusKey(transaction) {

@ -356,7 +356,7 @@ export function addHexPrefixToObjectValues(obj) {
* @param {string} options.from - A hex address of the tx sender address * @param {string} options.from - A hex address of the tx sender address
* @param {string} options.gas - A hex representation of the gas value for the transaction * @param {string} options.gas - A hex representation of the gas value for the transaction
* @param {string} options.gasPrice - A hex representation of the gas price for the transaction * @param {string} options.gasPrice - A hex representation of the gas price for the transaction
* @returns {Object} An object ready for submission to the blockchain, with all values appropriately hex prefixed * @returns {object} An object ready for submission to the blockchain, with all values appropriately hex prefixed
*/ */
export function constructTxParams({ export function constructTxParams({
sendToken, sendToken,

@ -24,7 +24,7 @@ import { useCurrencyDisplay } from '../useCurrencyDisplay';
import { useUserPreferencedCurrency } from '../useUserPreferencedCurrency'; import { useUserPreferencedCurrency } from '../useUserPreferencedCurrency';
/** /**
* @typedef {Object} GasEstimatesReturnType * @typedef {object} GasEstimatesReturnType
* @property {string} [estimatedMinimumFiat] - The amount estimated to be paid * @property {string} [estimatedMinimumFiat] - The amount estimated to be paid
* based on current network conditions. Expressed in user's preferred currency. * based on current network conditions. Expressed in user's preferred currency.
* @property {string} [estimatedMaximumFiat] - the maximum amount estimated to be paid if current * @property {string} [estimatedMaximumFiat] - the maximum amount estimated to be paid if current

@ -155,10 +155,10 @@ const hasBalanceError = (minimumCostInHexWei, transaction, ethBalance) => {
}; };
/** /**
* @typedef {Object} GasFeeErrorsReturnType * @typedef {object} GasFeeErrorsReturnType
* @property {Object} [gasErrors] - combined map of errors and warnings. * @property {object} [gasErrors] - combined map of errors and warnings.
* @property {boolean} [hasGasErrors] - true if there are errors that can block submission. * @property {boolean} [hasGasErrors] - true if there are errors that can block submission.
* @property {Object} gasWarnings - map of gas warnings for EIP-1559 fields. * @property {object} gasWarnings - map of gas warnings for EIP-1559 fields.
* @property {boolean} [balanceError] - true if user balance is less than transaction value. * @property {boolean} [balanceError] - true if user balance is less than transaction value.
* @property {boolean} [estimatesUnavailableWarning] - true if supportsEIP1559 is true and * @property {boolean} [estimatesUnavailableWarning] - true if supportsEIP1559 is true and
* estimate is not of type fee-market. * estimate is not of type fee-market.

@ -41,7 +41,7 @@ import { useTransactionFunctions } from './useTransactionFunctions';
*/ */
/** /**
* @typedef {Object} GasFeeInputReturnType * @typedef {object} GasFeeInputReturnType
* @property {DecGweiString} [maxFeePerGas] - the maxFeePerGas input value. * @property {DecGweiString} [maxFeePerGas] - the maxFeePerGas input value.
* @property {string} [maxFeePerGasFiat] - the maxFeePerGas converted to the * @property {string} [maxFeePerGasFiat] - the maxFeePerGas converted to the
* user's preferred currency. * user's preferred currency.

@ -20,7 +20,7 @@ function getGasPriceEstimate(gasFeeEstimates, gasEstimateType, estimateToUse) {
} }
/** /**
* @typedef {Object} GasPriceInputsReturnType * @typedef {object} GasPriceInputsReturnType
* @property {DecGweiString} [gasPrice] - the gasPrice input value. * @property {DecGweiString} [gasPrice] - the gasPrice input value.
* @property {(DecGweiString) => void} setGasPrice - state setter method to update the gasPrice. * @property {(DecGweiString) => void} setGasPrice - state setter method to update the gasPrice.
* @property {(boolean) => true} setGasPriceHasBeenManuallySet - state setter method to update gasPriceHasBeenManuallySet * @property {(boolean) => true} setGasPriceHasBeenManuallySet - state setter method to update gasPriceHasBeenManuallySet

@ -28,7 +28,7 @@ const getMaxFeePerGasFromTransaction = (transaction, gasFeeEstimates) => {
}; };
/** /**
* @typedef {Object} MaxFeePerGasInputReturnType * @typedef {object} MaxFeePerGasInputReturnType
* @property {(DecGweiString) => void} setMaxFeePerGas - state setter method to * @property {(DecGweiString) => void} setMaxFeePerGas - state setter method to
* update the maxFeePerGas. * update the maxFeePerGas.
* @property {string} [maxFeePerGasFiat] - the maxFeePerGas converted to the * @property {string} [maxFeePerGasFiat] - the maxFeePerGas converted to the

@ -32,7 +32,7 @@ const getMaxPriorityFeePerGasFromTransaction = (
}; };
/** /**
* @typedef {Object} MaxPriorityFeePerGasInputReturnType * @typedef {object} MaxPriorityFeePerGasInputReturnType
* @property {DecGweiString} [maxPriorityFeePerGas] - the maxPriorityFeePerGas * @property {DecGweiString} [maxPriorityFeePerGas] - the maxPriorityFeePerGas
* input value. * input value.
* @property {string} [maxPriorityFeePerGasFiat] - the maxPriorityFeePerGas * @property {string} [maxPriorityFeePerGasFiat] - the maxPriorityFeePerGas

@ -16,7 +16,7 @@ import { TEST_NETWORK_TICKER_MAP } from '../../shared/constants/network';
/** /**
* Defines the shape of the options parameter for useCurrencyDisplay * Defines the shape of the options parameter for useCurrencyDisplay
* *
* @typedef {Object} UseCurrencyOptions * @typedef {object} UseCurrencyOptions
* @property {string} [displayValue] - When present is used in lieu of formatting the inputValue * @property {string} [displayValue] - When present is used in lieu of formatting the inputValue
* @property {string} [prefix] - String to prepend to the final result * @property {string} [prefix] - String to prepend to the final result
* @property {number} [numberOfDecimals] - Number of significant decimals to display * @property {number} [numberOfDecimals] - Number of significant decimals to display
@ -27,7 +27,7 @@ import { TEST_NETWORK_TICKER_MAP } from '../../shared/constants/network';
/** /**
* Defines the return shape of the second value in the tuple * Defines the return shape of the second value in the tuple
* *
* @typedef {Object} CurrencyDisplayParts * @typedef {object} CurrencyDisplayParts
* @property {string} [prefix] - string to prepend to the value for display * @property {string} [prefix] - string to prepend to the value for display
* @property {string} value - string representing the value, formatted for display * @property {string} value - string representing the value, formatted for display
* @property {string} [suffix] - string to append to the value for display * @property {string} [suffix] - string to append to the value for display

@ -9,7 +9,7 @@ import { getConversionRate } from '../ducks/metamask/metamask';
* Get an Eth amount converted to fiat and formatted for display * Get an Eth amount converted to fiat and formatted for display
* *
* @param {string} [ethAmount] - The eth amount to convert * @param {string} [ethAmount] - The eth amount to convert
* @param {Object} [overrides] - A configuration object that allows the called to explicitly * @param {object} [overrides] - A configuration object that allows the called to explicitly
* ensure fiat is shown even if the property is not set in state. * ensure fiat is shown even if the property is not set in state.
* @param {boolean} [overrides.showFiat] - If truthy, ensures the fiat value is shown even if the showFiat value from state is falsey * @param {boolean} [overrides.showFiat] - If truthy, ensures the fiat value is shown even if the showFiat value from state is falsey
* @param {boolean} hideCurrencySymbol - Indicates whether the returned formatted amount should include the trailing currency symbol * @param {boolean} hideCurrencySymbol - Indicates whether the returned formatted amount should include the trailing currency symbol

@ -15,7 +15,7 @@ import { useSegmentContext } from './useSegmentContext';
* fragment id. * fragment id.
* *
* @param {string} existingId * @param {string} existingId
* @param {Object} fragmentOptions * @param {object} fragmentOptions
* @returns * @returns
*/ */
export function useEventFragment(existingId, fragmentOptions = {}) { export function useEventFragment(existingId, fragmentOptions = {}) {

@ -152,10 +152,10 @@ const getBalanceError = (minimumCostInHexWei, transaction, ethBalance) => {
}; };
/** /**
* @typedef {Object} GasFeeErrorsReturnType * @typedef {object} GasFeeErrorsReturnType
* @property {Object} [gasErrors] - combined map of errors and warnings. * @property {object} [gasErrors] - combined map of errors and warnings.
* @property {boolean} [hasGasErrors] - true if there are errors that can block submission. * @property {boolean} [hasGasErrors] - true if there are errors that can block submission.
* @property {Object} gasWarnings - map of gas warnings for EIP-1559 fields. * @property {object} gasWarnings - map of gas warnings for EIP-1559 fields.
* @property {boolean} [balanceError] - true if user balance is less than transaction value. * @property {boolean} [balanceError] - true if user balance is less than transaction value.
* @property {boolean} [estimatesUnavailableWarning] - true if supportsEIP1559 is true and * @property {boolean} [estimatesUnavailableWarning] - true if supportsEIP1559 is true and
* estimate is not of type fee-market. * estimate is not of type fee-market.

@ -15,7 +15,7 @@ import { getKnownMethodData } from '../selectors/selectors';
* hit the action more frequently, it should only ever result in a single store update * hit the action more frequently, it should only ever result in a single store update
* *
* @param {string} data - the transaction data to find method data for * @param {string} data - the transaction data to find method data for
* @returns {Object} contract method data * @returns {object} contract method data
*/ */
export function useMethodData(data) { export function useMethodData(data) {
const dispatch = useDispatch(); const dispatch = useDispatch();

@ -3,7 +3,7 @@ import { getTargetSubjectMetadata } from '../selectors';
import { SUBJECT_TYPES } from '../../shared/constants/app'; import { SUBJECT_TYPES } from '../../shared/constants/app';
/** /**
* @typedef {Object} OriginMetadata * @typedef {object} OriginMetadata
* @property {string} hostname - The hostname of the origin (host + port) * @property {string} hostname - The hostname of the origin (host + port)
* @property {string} origin - The original origin string itself * @property {string} origin - The original origin string itself
* @property {string} [iconUrl] - The origin's site icon URL, if available * @property {string} [iconUrl] - The origin's site icon URL, if available

@ -6,7 +6,7 @@ import { SECOND } from '../../shared/constants/time';
* an effect to check the logic again after the transaction has surpassed 5 seconds * an effect to check the logic again after the transaction has surpassed 5 seconds
* of queue time. * of queue time.
* *
* @param {Object} transactionGroup - the transaction group to check against * @param {object} transactionGroup - the transaction group to check against
* @param {boolean} isEarliestNonce - Whether this group is currently the earliest nonce * @param {boolean} isEarliestNonce - Whether this group is currently the earliest nonce
*/ */
export function useShouldShowSpeedUp(transactionGroup, isEarliestNonce) { export function useShouldShowSpeedUp(transactionGroup, isEarliestNonce) {

@ -9,7 +9,7 @@ import { getCurrentChainId } from '../selectors';
import { useTokenFiatAmount } from './useTokenFiatAmount'; import { useTokenFiatAmount } from './useTokenFiatAmount';
/** /**
* @typedef {Object} SwappedTokenValue * @typedef {object} SwappedTokenValue
* @property {string} swapTokenValue - a primary currency string formatted for display * @property {string} swapTokenValue - a primary currency string formatted for display
* @property {string} swapTokenFiatAmount - a secondary currency string formatted for display * @property {string} swapTokenFiatAmount - a secondary currency string formatted for display
* @property {boolean} isViewingReceivedTokenFromSwap - true if user is on the asset page for the * @property {boolean} isViewingReceivedTokenFromSwap - true if user is on the asset page for the

@ -12,7 +12,7 @@ import { parseStandardTokenTransactionData } from '../../shared/modules/transact
* force this hook to return null if it set as false * force this hook to return null if it set as false
* which indicates the transaction is not associated * which indicates the transaction is not associated
* with a token. * with a token.
* @returns {Object} Decoded token data * @returns {object} Decoded token data
*/ */
export function useTokenData(transactionData, isTokenTransaction = true) { export function useTokenData(transactionData, isTokenTransaction = true) {
return useMemo(() => { return useMemo(() => {

@ -8,7 +8,7 @@ import { useTokenData } from './useTokenData';
/** /**
* Defines the shape for the Token input parameter for useTokenDisplayValue * Defines the shape for the Token input parameter for useTokenDisplayValue
* *
* @typedef {Object} Token * @typedef {object} Token
* @property {string} symbol - The string to use as a suffix for the token (eg. DAI) * @property {string} symbol - The string to use as a suffix for the token (eg. DAI)
* @property {number} decimals - The number of decimals to show when displaying this type of token * @property {number} decimals - The number of decimals to show when displaying this type of token
*/ */

@ -15,7 +15,7 @@ import { isEqualCaseInsensitive } from '../../shared/modules/string-utils';
* @param {string} [tokenAddress] - The token address * @param {string} [tokenAddress] - The token address
* @param {string} [tokenAmount] - The token balance * @param {string} [tokenAmount] - The token balance
* @param {string} [tokenSymbol] - The token symbol * @param {string} [tokenSymbol] - The token symbol
* @param {Object} [overrides] - A configuration object that allows the caller to explicitly pass an exchange rate or * @param {object} [overrides] - A configuration object that allows the caller to explicitly pass an exchange rate or
* ensure fiat is shown even if the property is not set in state. * ensure fiat is shown even if the property is not set in state.
* @param {number} [overrides.exchangeRate] - An exhchange rate to use instead of the one selected from state * @param {number} [overrides.exchangeRate] - An exhchange rate to use instead of the one selected from state
* @param {boolean} [overrides.showFiat] - If truthy, ensures the fiat value is shown even if the showFiat value from state is falsey * @param {boolean} [overrides.showFiat] - If truthy, ensures the fiat value is shown even if the showFiat value from state is falsey

@ -63,7 +63,7 @@ const signatureTypes = [
*/ */
/** /**
* @typedef {Object} TransactionDisplayData * @typedef {object} TransactionDisplayData
* @property {string} category - the transaction category that will be used for rendering the icon in the activity list * @property {string} category - the transaction category that will be used for rendering the icon in the activity list
* @property {string} primaryCurrency - the currency string to display in the primary position * @property {string} primaryCurrency - the currency string to display in the primary position
* @property {string} recipientAddress - the Ethereum address of the recipient * @property {string} recipientAddress - the Ethereum address of the recipient

@ -11,7 +11,7 @@ import { PRIMARY, SECONDARY, ETH } from '../helpers/constants/common';
/** /**
* Defines the shape of the options parameter for useUserPreferencedCurrency * Defines the shape of the options parameter for useUserPreferencedCurrency
* *
* @typedef {Object} UseUserPreferencedCurrencyOptions * @typedef {object} UseUserPreferencedCurrencyOptions
* @property {number} [numberOfDecimals] - Number of significant decimals to display * @property {number} [numberOfDecimals] - Number of significant decimals to display
* @property {number} [ethNumberOfDecimals] - Number of significant decimals to display * @property {number} [ethNumberOfDecimals] - Number of significant decimals to display
* when using ETH * when using ETH
@ -22,7 +22,7 @@ import { PRIMARY, SECONDARY, ETH } from '../helpers/constants/common';
/** /**
* Defines the return shape of useUserPreferencedCurrency * Defines the return shape of useUserPreferencedCurrency
* *
* @typedef {Object} UserPreferredCurrency * @typedef {object} UserPreferredCurrency
* @property {string} currency - the currency type to use (eg: 'ETH', 'usd') * @property {string} currency - the currency type to use (eg: 'ETH', 'usd')
* @property {number} numberOfDecimals - Number of significant decimals to display * @property {number} numberOfDecimals - Number of significant decimals to display
*/ */

@ -68,7 +68,7 @@ const alertStateReducer = produce((state, action) => {
* outside of this file, but it helps to reduce complexity of the primary * outside of this file, but it helps to reduce complexity of the primary
* component. * component.
* *
* @param {Object} pendingConfirmation - a pending confirmation waiting for * @param {object} pendingConfirmation - a pending confirmation waiting for
* user approval * user approval
* @returns {[alertState: object, dismissAlert: Function]} A tuple with * @returns {[alertState: object, dismissAlert: Function]} A tuple with
* the current alert state and function to dismiss an alert by id * the current alert state and function to dismiss an alert by id

@ -32,12 +32,12 @@ const ALLOWED_TEMPLATE_KEYS = [
]; ];
/** /**
* @typedef {Object} PendingApproval * @typedef {object} PendingApproval
* @property {string} id - The randomly generated id of the approval * @property {string} id - The randomly generated id of the approval
* @property {string} origin - The origin of the site requesting this approval * @property {string} origin - The origin of the site requesting this approval
* @property {number} time - The time the approval was requested * @property {number} time - The time the approval was requested
* @property {string} type - The type of approval being requested * @property {string} type - The type of approval being requested
* @property {Object} requestData - The data submitted with the request * @property {object} requestData - The data submitted with the request
*/ */
/** /**
@ -46,7 +46,7 @@ const ALLOWED_TEMPLATE_KEYS = [
* page the alerts returned from the getAlerts method will be set into the * page the alerts returned from the getAlerts method will be set into the
* alertState state object. * alertState state object.
* *
* @param {Object} pendingApproval - the object representing the confirmation * @param {object} pendingApproval - the object representing the confirmation
*/ */
export async function getTemplateAlerts(pendingApproval) { export async function getTemplateAlerts(pendingApproval) {
const fn = APPROVAL_TEMPLATES[pendingApproval.type]?.getAlerts; const fn = APPROVAL_TEMPLATES[pendingApproval.type]?.getAlerts;
@ -78,7 +78,7 @@ async function emptyState() {
* confirmationState state object. Note, this state is not consumed by the page * confirmationState state object. Note, this state is not consumed by the page
* itself. * itself.
* *
* @param {Object} pendingApproval - the object representing the confirmation * @param {object} pendingApproval - the object representing the confirmation
*/ */
export async function getTemplateState(pendingApproval) { export async function getTemplateState(pendingApproval) {
const fn = APPROVAL_TEMPLATES[pendingApproval.type]?.getState ?? emptyState; const fn = APPROVAL_TEMPLATES[pendingApproval.type]?.getState ?? emptyState;
@ -112,7 +112,7 @@ function getAttenuatedDispatch(dispatch) {
/** /**
* Returns the templated values to be consumed in the confirmation page * Returns the templated values to be consumed in the confirmation page
* *
* @param {Object} pendingApproval - The pending confirmation object * @param {object} pendingApproval - The pending confirmation object
* @param {Function} t - Translation function * @param {Function} t - Translation function
* @param {Function} dispatch - Redux dispatch function * @param {Function} dispatch - Redux dispatch function
*/ */

@ -12,8 +12,8 @@ import {
/** /**
* Get the permission subjects object. * Get the permission subjects object.
* *
* @param {Object} state - The current state. * @param {object} state - The current state.
* @returns {Object} The permissions subjects object. * @returns {object} The permissions subjects object.
*/ */
export function getPermissionSubjects(state) { export function getPermissionSubjects(state) {
return state.metamask.subjects || {}; return state.metamask.subjects || {};
@ -23,7 +23,7 @@ export function getPermissionSubjects(state) {
* Selects the permitted accounts from the eth_accounts permission given state * Selects the permitted accounts from the eth_accounts permission given state
* and an origin. * and an origin.
* *
* @param {Object} state - The current state. * @param {object} state - The current state.
* @param {string} origin - The origin/subject to get the permitted accounts for. * @param {string} origin - The origin/subject to get the permitted accounts for.
* @returns {Array<string>} An empty array or an array of accounts. * @returns {Array<string>} An empty array or an array of accounts.
*/ */
@ -37,7 +37,7 @@ export function getPermittedAccounts(state, origin) {
* Selects the permitted accounts from the eth_accounts permission for the * Selects the permitted accounts from the eth_accounts permission for the
* origin of the current tab. * origin of the current tab.
* *
* @param {Object} state - The current state. * @param {object} state - The current state.
* @returns {Array<string>} An empty array or an array of accounts. * @returns {Array<string>} An empty array or an array of accounts.
*/ */
export function getPermittedAccountsForCurrentTab(state) { export function getPermittedAccountsForCurrentTab(state) {
@ -47,8 +47,8 @@ export function getPermittedAccountsForCurrentTab(state) {
/** /**
* Returns a map of permitted accounts by origin for all origins. * Returns a map of permitted accounts by origin for all origins.
* *
* @param {Object} state - The current state. * @param {object} state - The current state.
* @returns {Object} Permitted accounts by origin. * @returns {object} Permitted accounts by origin.
*/ */
export function getPermittedAccountsByOrigin(state) { export function getPermittedAccountsByOrigin(state) {
const subjects = getPermissionSubjects(state); const subjects = getPermissionSubjects(state);
@ -68,8 +68,8 @@ export function getPermittedAccountsByOrigin(state) {
* - name * - name
* - icon * - icon
* *
* @param {Object} state - The current state. * @param {object} state - The current state.
* @returns {Array<Object>} An array of connected subject objects. * @returns {Array<object>} An array of connected subject objects.
*/ */
export function getConnectedSubjectsForSelectedAddress(state) { export function getConnectedSubjectsForSelectedAddress(state) {
const { selectedAddress } = state.metamask; const { selectedAddress } = state.metamask;
@ -124,8 +124,8 @@ export function getSubjectsWithPermission(state, permissionName) {
* - iconUrl * - iconUrl
* - name * - name
* *
* @param {Object} state - The current state. * @param {object} state - The current state.
* @returns {Object} A mapping of addresses to a mapping of origins to * @returns {object} A mapping of addresses to a mapping of origins to
* connected subject info. * connected subject info.
*/ */
export function getAddressConnectedSubjectMap(state) { export function getAddressConnectedSubjectMap(state) {

@ -76,7 +76,7 @@ import { SNAPS_VIEW_ROUTE } from '../helpers/constants/routes';
* This will be used for all cases where this state key is accessed only for that * This will be used for all cases where this state key is accessed only for that
* purpose. * purpose.
* *
* @param {Object} state - redux state object * @param {object} state - redux state object
*/ */
export function isNetworkLoading(state) { export function isNetworkLoading(state) {
return state.metamask.network === 'loading'; return state.metamask.network === 'loading';
@ -199,7 +199,7 @@ export function checkNetworkOrAccountNotSupports1559(state) {
/** /**
* Checks if the current wallet is a hardware wallet. * Checks if the current wallet is a hardware wallet.
* *
* @param {Object} state * @param {object} state
* @returns {boolean} * @returns {boolean}
*/ */
export function isHardwareWallet(state) { export function isHardwareWallet(state) {
@ -210,7 +210,7 @@ export function isHardwareWallet(state) {
/** /**
* Get a HW wallet type, e.g. "Ledger Hardware" * Get a HW wallet type, e.g. "Ledger Hardware"
* *
* @param {Object} state * @param {object} state
* @returns {string | undefined} * @returns {string | undefined}
*/ */
export function getHardwareWalletType(state) { export function getHardwareWalletType(state) {
@ -242,7 +242,7 @@ export function getAccountType(state) {
* metadata that predates the switch to using chainId. * metadata that predates the switch to using chainId.
* *
* @deprecated - use getCurrentChainId instead * @deprecated - use getCurrentChainId instead
* @param {Object} state - redux state object * @param {object} state - redux state object
*/ */
export function deprecatedGetCurrentNetworkId(state) { export function deprecatedGetCurrentNetworkId(state) {
return state.metamask.network; return state.metamask.network;
@ -639,7 +639,7 @@ export function getWeb3ShimUsageStateForOrigin(state, origin) {
} }
/** /**
* @typedef {Object} SwapsEthToken * @typedef {object} SwapsEthToken
* @property {string} symbol - The symbol for ETH, namely "ETH" * @property {string} symbol - The symbol for ETH, namely "ETH"
* @property {string} name - The name of the ETH currency, "Ether" * @property {string} name - The name of the ETH currency, "Ether"
* @property {string} address - A substitute address for the metaswap-api to * @property {string} address - A substitute address for the metaswap-api to
@ -756,7 +756,7 @@ export const getSnapsRouteObjects = createSelector(getSnaps, (snaps) => {
}); });
/** /**
* @typedef {Object} Notification * @typedef {object} Notification
* @property {string} id - A unique identifier for the notification * @property {string} id - A unique identifier for the notification
* @property {string} origin - A string identifing the snap origin * @property {string} origin - A string identifing the snap origin
* @property {EpochTimeStamp} createdDate - A date in epochTimeStramps, identifying when the notification was first committed * @property {EpochTimeStamp} createdDate - A date in epochTimeStramps, identifying when the notification was first committed
@ -771,7 +771,7 @@ export const getSnapsRouteObjects = createSelector(getSnaps, (snaps) => {
* *
* The returned notifications are sorted by date. * The returned notifications are sorted by date.
* *
* @param {Object} state - the redux state object * @param {object} state - the redux state object
* @returns {Notification[]} An array of notifications that can be shown to the user * @returns {Notification[]} An array of notifications that can be shown to the user
*/ */
@ -803,8 +803,8 @@ export const getUnreadNotificationsCount = createSelector(
/** /**
* Get an object of announcement IDs and if they are allowed or not. * Get an object of announcement IDs and if they are allowed or not.
* *
* @param {Object} state * @param {object} state
* @returns {Object} * @returns {object}
*/ */
function getAllowedAnnouncementIds(state) { function getAllowedAnnouncementIds(state) {
const currentKeyring = getCurrentKeyring(state); const currentKeyring = getCurrentKeyring(state);
@ -831,7 +831,7 @@ function getAllowedAnnouncementIds(state) {
} }
/** /**
* @typedef {Object} Announcement * @typedef {object} Announcement
* @property {number} id - A unique identifier for the announcement * @property {number} id - A unique identifier for the announcement
* @property {string} date - A date in YYYY-MM-DD format, identifying when the notification was first committed * @property {string} date - A date in YYYY-MM-DD format, identifying when the notification was first committed
*/ */
@ -844,7 +844,7 @@ function getAllowedAnnouncementIds(state) {
* *
* The returned announcements are sorted by date. * The returned announcements are sorted by date.
* *
* @param {Object} state - the redux state object * @param {object} state - the redux state object
* @returns {Announcement[]} An array of announcements that can be shown to the user * @returns {Announcement[]} An array of announcements that can be shown to the user
*/ */
@ -917,7 +917,7 @@ export function getTheme(state) {
* To retrieve the tokenList produced by TokenListcontroller * To retrieve the tokenList produced by TokenListcontroller
* *
* @param {*} state * @param {*} state
* @returns {Object} * @returns {object}
*/ */
export function getTokenList(state) { export function getTokenList(state) {
return state.metamask.tokenList; return state.metamask.tokenList;

@ -150,8 +150,8 @@ const insertOrderedNonce = (nonces, nonceToInsert) => {
* @private * @private
* @description Inserts (mutates) a transaction object into an array of ordered transactions, sorted * @description Inserts (mutates) a transaction object into an array of ordered transactions, sorted
* in ascending order by time. * in ascending order by time.
* @param {Object[]} transactions - Array of transaction objects. * @param {object[]} transactions - Array of transaction objects.
* @param {Object} transaction - Transaction object to be inserted into the array of transactions. * @param {object} transaction - Transaction object to be inserted into the array of transactions.
*/ */
const insertTransactionByTime = (transactions, transaction) => { const insertTransactionByTime = (transactions, transaction) => {
const { time } = transaction; const { time } = transaction;
@ -173,11 +173,11 @@ const insertTransactionByTime = (transactions, transaction) => {
/** /**
* Contains transactions and properties associated with those transactions of the same nonce. * Contains transactions and properties associated with those transactions of the same nonce.
* *
* @typedef {Object} transactionGroup * @typedef {object} transactionGroup
* @property {string} nonce - The nonce that the transactions within this transactionGroup share. * @property {string} nonce - The nonce that the transactions within this transactionGroup share.
* @property {Object[]} transactions - An array of transaction (txMeta) objects. * @property {object[]} transactions - An array of transaction (txMeta) objects.
* @property {Object} initialTransaction - The transaction (txMeta) with the lowest "time". * @property {object} initialTransaction - The transaction (txMeta) with the lowest "time".
* @property {Object} primaryTransaction - Either the latest transaction or the confirmed * @property {object} primaryTransaction - Either the latest transaction or the confirmed
* transaction. * transaction.
* @property {boolean} hasRetried - True if a transaction in the group was a retry transaction. * @property {boolean} hasRetried - True if a transaction in the group was a retry transaction.
* @property {boolean} hasCancelled - True if a transaction in the group was a cancel transaction. * @property {boolean} hasCancelled - True if a transaction in the group was a cancel transaction.

@ -100,7 +100,7 @@ export function tryUnlockMetamask(password) {
* *
* @param {string} password - The password. * @param {string} password - The password.
* @param {string} seedPhrase - The seed phrase. * @param {string} seedPhrase - The seed phrase.
* @returns {Object} The updated state of the keyring controller. * @returns {object} The updated state of the keyring controller.
*/ */
export function createNewVaultAndRestore(password, seedPhrase) { export function createNewVaultAndRestore(password, seedPhrase) {
return (dispatch) => { return (dispatch) => {
@ -2980,7 +2980,7 @@ export function requestAccountsPermissionWithId(origin) {
/** /**
* Approves the permissions request. * Approves the permissions request.
* *
* @param {Object} request - The permissions request to approve. * @param {object} request - The permissions request to approve.
*/ */
export function approvePermissionsRequest(request) { export function approvePermissionsRequest(request) {
return (dispatch) => { return (dispatch) => {

Loading…
Cancel
Save