Skip to main content

Web3 automation testing tool.

Project description

Overview

Since web3 applications usually need to operate wallets (such as metamask), this tool can automate the operation of the metamask part to facilitate developers to test the application.

Installation

auto-metamask can be installed using pip:

$ pip install auto-metamask

Usage Examples

import os
import sys
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from auto_metamask import *

if __name__ == '__main__':

    metamask_path = downloadMetamask(
        'https://github.com/MetaMask/metamask-extension/releases/download/v10.11.2/metamask-chrome-10.11.2.zip')
    driver = setupWebdriver(metamask_path)
    # Test account, please do not use for production environment
    setupMetamask(
        'whip squirrel shine cabin access spell arrow review spread code fire marine', 'testtest')
    addNetwork('BSC', 'https://bsc-dataseed1.binance.org', '56', 'BNB')
    changeNetwork('BSC')
    # Test account, please do not use for production environment
    importPK("bb334564f93fc3a40a3b6a89e0560101bb86e5b75c773381f1e6d2f37fc5c5ba")

    driver.switch_to.new_window()
    driver.get('https://metamask.github.io/test-dapp/')

    wait = WebDriverWait(driver, 20, 1)
    wait.until(EC.element_to_be_clickable(
        (By.XPATH, '//button[text()="Connect"]'))).click()
    connectWallet()

    time.sleep(6)
    driver.quit()

API Reference

auto_metamask.core

downloadMetamask

def downloadMetamask(url)

Download the metamask extension

Arguments:

  • url (String): Metamask extension download address (.zip)

Returns:

String: Extension file path

setupWebdriver

def setupWebdriver(metamask_path)

Initialize chrome browser and install metamask extension

Arguments:

  • metamask_path (String): Extension file path

Returns:

WebDriver: Selenium Chrome WebDriver

setupMetamask

@switchPage
def setupMetamask(recovery_phrase, password)

Autocomplete metamask welcome page

Arguments:

  • recovery_phrase (String): Recovery phrase
  • password (String): Wallet password (minimum 8 characters)

addNetwork

@switchPage
def addNetwork(network_name, rpc_url, chain_id, currency_symbol)

Add new network

Arguments:

  • network_name (String): Network name
  • rpc_url (String): RPC URL
  • chain_id (String): Chain ID
  • currency_symbol (String): Currency symbol

changeNetwork

@switchPage
def changeNetwork(network_name)

Change network

Arguments:

  • network_name (String): Network name

importPK

@switchPage
def importPK(priv_key)

Import private key

Arguments:

  • priv_key (String): private key

connectWallet

@switchPage
def connectWallet()

Connect wallet

signWallet

@switchPage
def signWallet()

Sign wallet

confirmTransaction

@switchPage
def confirmTransaction()

Confirm transaction

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

auto-metamask-0.1.3.tar.gz (7.0 kB view details)

Uploaded Source

File details

Details for the file auto-metamask-0.1.3.tar.gz.

File metadata

  • Download URL: auto-metamask-0.1.3.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.7

File hashes

Hashes for auto-metamask-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7383c2463ec40c3dbb622bec459ea98dd056bd6105d4d2639d37d635fc688ca6
MD5 619176bae9e64e75874f66bbf1a5e30a
BLAKE2b-256 7a5161da9540102060c62889a2096b31524663b545d79f05174ce3e2b394236f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page