Skip to content

Latest commit

 

History

History
106 lines (86 loc) · 3.8 KB

API.md

File metadata and controls

106 lines (86 loc) · 3.8 KB

dAppeteer API

Methods provided by dAppeteer.
For additional information read root readme

dAppeteer setup methods

dappeteer.launch(puppeteerLib: typeof puppeteer, options: LaunchOptions = {}): Promise<Browser>

interface LaunchOptions {
  metamaskVersion: 'latest' | string; // Metamask plugin version
  metamaskLocation?: Path; // Custom location of download and extract path
}

type Path = string | { download: string; extract: string; };

returns an instance of browser, same as puppeteer.launch, but it also installs the MetaMask extension. It supports all the regular puppeteer.launch options

dappeteer.setupMetamask(browser: Browser, options: MetamaskOptions = {}): Promise<Dappeteer>

interface MetamaskOptions {
  seed?: string;
  password?: string;
}

dappeteer.getMetamaskWindow(browser: Browser, version?: string): Promise<Dappeteer>

dAppeteer methods

metamask is used as placeholder for dAppeteer returned by setupMetamask or getMetamaskWindow

metamask.switchAccount(accountNumber: number): Promise<void>

it commands MetaMask to switch to a different account, by passing the index/position of the account in the accounts list.

metamask.importPK(privateKey: string): Promise<void>

it commands MetaMask to import an private key. It can only be used while you haven't signed in yet, otherwise it throws.

metamask.lock(): Promise<void>

signs out from MetaMask. It can only be used if you arelady signed it, otherwise it throws.

metamask.unlock(password: string): Promise<void>

it unlocks the MetaMask extension. It can only be used in you locked/signed out before, otherwise it throws. The password is optional, it defaults to password1234.

metamask.switchNetwork(network: string): Promise<void>

it changes the current selected network. networkName can take the following values: "main", "ropsten", "rinkeby", "kovan", "localhost".

metamask.addNetwork(options: AddNetwork): Promise<void>

interface AddNetwork {
  networkName: string;
  rpc: string;
  chainId: number;
  symbol?: string;
  explorer?: string;
}

it adds a custom network to MetaMask.

metamask.confirmTransaction(options?: TransactionOptions): Promise<void>

interface TransactionOptions {
  gas?: number;
  gasLimit?: number;
}

commands MetaMask to submit a transaction. For this to work MetaMask has to be in a transaction confirmation state (basically promting the user to submit/reject a transaction). You can (optionally) pass an object with gas and/or gasLimit, by default they are 20 and 50000 respectively.

metamask.sign(): Promise<void>

commands MetaMask to sign a message. For this to work MetaMask must be in a sign confirmation state.

metamask.approve(): Promise<void>

enables the app to connect to MetaMask account in privacy mode

metamask.page is Metamask plugin Page

for advanced usages in case you need custom features.