Skip to content

Maksandre/w3wallets

Repository files navigation

w3wallets

License npm version CodeQL Tests

Web3 wallets for Playwright.

This library provides methods for interacting with Web3 wallets using Playwright.

npm install -D w3wallets

Getting Started

MetaMask, Backpack, and Polkadot{.js} wallets are currently supported.

Metamask Logo Backpack Logo Polkadot JS Logo

1. Download wallets

npx w3wallets backpack polkadotJS

The unzipped files should be stored in the .w3wallets/<wallet-name> directory. Add them to .gitignore.

2. Wrap your fixture with withWallets

Install the required wallets into Chromium using withWallets.

// your-fixture.ts
import { withWallets } from "w3wallets";
import { test as base } from "@playwright/test";

export const test = withWallets(
  base,
  "backpack",
  "polkadotJS",
).extend<BaseFixture>({
  magic: (_, use) => use(42),
});

type BaseFixture = {
  magic: number;
};

export { expect } from "@playwright/test";

3. Use the installed wallets in tests

Most commonly, you will use the following methods:

  1. onboard: to set up your wallet
  2. approve: for operations that confirm actions
  3. deny: for actions that reject or cancel operations
import { test } from "./your-fixture";

test("Can use wallet", async ({ page, backpack }) => {
  const privateKey =
    "4wDJd9Ds5ueTdS95ReAZGSBVkjMcNKbgZk47xcmqzpUJjCt7VoB2Cs7hqwXWRnopzXqE4mCP6BEDHCYrFttEcBw2";

  await backpack.onboard("Eclipse", privateKey);
});

About

Web3 wallet automation for Playwright testing

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •