MetaMask class for interacting with the MetaMask extension in Cypress tests.

Constructors

new MetaMask()

new MetaMask(
   context, 
   metamaskExtensionPage, 
   metamaskExtensionId): MetaMask

Creates an instance of MetaMask.

Parameters

ParameterTypeDescription
contextBrowserContextThe browser context
metamaskExtensionPagePageThe MetaMask extension page
metamaskExtensionIdstringThe MetaMask extension ID

Returns

MetaMask

Properties

PropertyModifierTypeDescription
metamaskExtensionPagereadonlyPageThe MetaMask extension page
metamaskPlaywrightreadonlyMetaMaskThe MetaMask instance for Playwright

Methods

addNetwork()

addNetwork(network): Promise<boolean>

Adds a new network to MetaMask.

Parameters

ParameterTypeDescription
networkobjectThe network configuration to add
network.blockExplorerUrl?string-
network.chainIdnumber-
network.namestring-
network.rpcUrlstring-
network.symbolstring-

Returns

Promise<boolean>

True if the network was added successfully


addNewAccount()

addNewAccount(accountName): Promise<boolean>

Adds a new account with the given name.

Parameters

ParameterTypeDescription
accountNamestringThe name for the new account

Returns

Promise<boolean>

True if the account was added successfully


addNewToken()

addNewToken(): Promise<boolean>

Adds a new token to MetaMask.

Returns

Promise<boolean>

True if the token was added successfully


approveNewNetwork()

approveNewNetwork(): Promise<boolean>

Approves adding a new network.

Returns

Promise<boolean>

True if the new network was approved successfully


approveSwitchNetwork()

approveSwitchNetwork(): Promise<boolean>

Approves switching to a new network.

Returns

Promise<boolean>

True if the network switch was approved successfully


approveTokenPermission()

approveTokenPermission(options?): Promise<boolean>

Approves token permission.

Parameters

ParameterTypeDescription
options?objectOptional settings for token approval
options.gasSetting?| "low" | "market" | "aggressive" | "site" | { "gasLimit": number; "maxBaseFee": number; "priorityFee": number; }Gas settings for the transaction
options.spendLimit?number | "max"The spend limit for the token (number or ‘max’)

Returns

Promise<boolean>

True if the permission was approved, false otherwise


closeTransactionDetails()

closeTransactionDetails(): Promise<boolean>

Closes the transaction details view.

Returns

Promise<boolean>

True if the transaction details were closed successfully, false otherwise


confirmSignature()

confirmSignature(): Promise<boolean>

Confirms a signature request.

Returns

Promise<boolean>

True if the signature was confirmed successfully, false otherwise


confirmTransaction()

confirmTransaction(options?): Promise<boolean>

Confirms a transaction.

Parameters

ParameterTypeDescription
options?objectOptional gas settings for the transaction
options.gasSetting?| "low" | "market" | "aggressive" | "site" | { "gasLimit": number; "maxBaseFee": number; "priorityFee": number; }-

Returns

Promise<boolean>

True if the transaction was confirmed successfully


confirmTransactionAndWaitForMining()

confirmTransactionAndWaitForMining(): Promise<boolean>

Confirms a transaction and waits for it to be mined.

Returns

Promise<boolean>

True if the transaction was confirmed and mined successfully, false otherwise


connectToAnvil()

connectToAnvil(options): Promise<boolean>

Connects to an Anvil node.

Parameters

ParameterTypeDescription
optionsobjectObject containing the RPC URL and chain ID
options.chainIdnumberThe chain ID of the Anvil node
options.rpcUrlstringThe RPC URL of the Anvil node

Returns

Promise<boolean>

True if the connection was successful, false otherwise


connectToDapp()

connectToDapp(accounts?): Promise<boolean>

Connects MetaMask to a dApp.

Parameters

ParameterTypeDescription
accounts?string[]Optional array of account addresses to connect

Returns

Promise<boolean>

True if the connection was successful


createAnvilNode()

createAnvilNode(options?): Promise<{
  "anvil": Anvil;
  "chainId": number;
  "rpcUrl": string;
}>

Creates an Anvil node for testing.

Parameters

ParameterTypeDescription
options?CreateAnvilOptionsOptional Anvil node creation options

Returns

Promise<{ "anvil": Anvil; "chainId": number; "rpcUrl": string; }>

Object containing the Anvil instance, RPC URL, and chain ID

MemberType
anvilAnvil
chainIdnumber
rpcUrlstring

decrypt()

decrypt(): Promise<boolean>

Decrypts a message.

Returns

Promise<boolean>

True if the message was decrypted successfully, false otherwise


deployToken()

deployToken(): Promise<boolean>

Deploys a token.

Returns

Promise<boolean>

True if the token was deployed successfully


emptyAnvilNode()

emptyAnvilNode(): Promise<boolean>

Empties the Anvil node pool.

Returns

Promise<boolean>

True if the operation was successful


getAccount()

getAccount(): Promise<string>

Gets the current account name.

Returns

Promise<string>

The current account name


getAccountAddress()

getAccountAddress(): Promise<string>

Gets the current account address.

Returns

Promise<string>

The current account address


getNetwork()

getNetwork(): Promise<string>

Gets the current network name.

Returns

Promise<string>

The current network name


goBackToHomePage()

goBackToHomePage(): Promise<boolean>

Navigates back to the home page.

Returns

Promise<boolean>

True if the navigation was successful


importWallet()

importWallet(seedPhrase): Promise<boolean>

Imports a wallet using a seed phrase.

Parameters

ParameterTypeDescription
seedPhrasestringThe seed phrase to import

Returns

Promise<boolean>

True if the import was successful


importWalletFromPrivateKey()

importWalletFromPrivateKey(privateKey): Promise<boolean>

Imports a wallet using a private key.

Parameters

ParameterTypeDescription
privateKeystringThe private key to import

Returns

Promise<boolean>

True if the import was successful


lock()

lock(): Promise<boolean>

Locks the MetaMask wallet.

Returns

Promise<boolean>

True if the wallet was locked successfully


openSettings()

openSettings(): Promise<boolean>

Opens the settings page.

Returns

Promise<boolean>

True if the settings page was opened successfully


openSidebarMenu()

openSidebarMenu(menu): Promise<boolean>

Opens a specific sidebar menu in the settings.

Parameters

ParameterTypeDescription
menuSettingsSidebarMenusThe menu to open

Returns

Promise<boolean>

True if the menu was opened successfully


openTransactionDetails()

openTransactionDetails(txIndex): Promise<boolean>

Opens the details of a specific transaction.

Parameters

ParameterTypeDescription
txIndexnumberThe index of the transaction to open

Returns

Promise<boolean>

True if the transaction details were opened successfully, false otherwise


providePublicEncryptionKey()

providePublicEncryptionKey(): Promise<boolean>

Provides a public encryption key.

Returns

Promise<boolean>

True if the key was provided successfully, false otherwise


rejectNewNetwork()

rejectNewNetwork(): Promise<boolean>

Rejects adding a new network.

Returns

Promise<boolean>

True if the new network was rejected successfully


rejectSignature()

rejectSignature(): Promise<boolean>

Rejects a signature request.

Returns

Promise<boolean>

True if the signature was rejected successfully


rejectSwitchNetwork()

rejectSwitchNetwork(): Promise<boolean>

Rejects switching to a new network.

Returns

Promise<boolean>

True if the network switch was rejected successfully


rejectTokenPermission()

rejectTokenPermission(): Promise<boolean>

Rejects token permission.

Returns

Promise<boolean>

True if the permission was rejected successfully


rejectTransaction()

rejectTransaction(): Promise<boolean>

Rejects a transaction.

Returns

Promise<boolean>

True if the transaction was rejected successfully


renameAccount()

renameAccount(options): Promise<boolean>

Renames an account.

Parameters

ParameterTypeDescription
optionsobjectObject containing the current and new account names
options.currentAccountNamestringThe current name of the account
options.newAccountNamestringThe new name for the account

Returns

Promise<boolean>

True if the rename was successful


resetAccount()

resetAccount(): Promise<boolean>

Resets the current account.

Returns

Promise<boolean>

True if the reset was successful


switchAccount()

switchAccount(accountName): Promise<boolean>

Switches to the account with the given name.

Parameters

ParameterTypeDescription
accountNamestringThe name of the account to switch to

Returns

Promise<boolean>

True if the switch was successful


switchNetwork()

switchNetwork(options): Promise<boolean>

Switches to the specified network.

Parameters

ParameterTypeDescription
optionsobjectObject containing the network name and testnet flag
options.isTestnet?booleanWhether the network is a testnet (default: false)
options.networkNamestringThe name of the network to switch to

Returns

Promise<boolean>

True if the switch was successful, false otherwise


toggleDismissSecretRecoveryPhraseReminder()

toggleDismissSecretRecoveryPhraseReminder(): Promise<boolean>

Toggles the dismissal of the secret recovery phrase reminder.

Returns

Promise<boolean>

True if the toggle was successful


toggleShowTestNetworks()

toggleShowTestNetworks(): Promise<boolean>

Toggles the display of test networks.

Returns

Promise<boolean>

True if the toggle was successful


unlock()

unlock(): Promise<boolean>

Unlocks the MetaMask wallet.

Returns

Promise<boolean>

True if the wallet was unlocked successfully