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