You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@lidofinance/browser-service

Package Overview
Dependencies
Maintainers
2
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lidofinance/browser-service

This package provides the BrowserService class for initializing and managing a Playwright browser context, network configurations, and wallets (EOA or WalletConnect). It facilitates automated testing of interactions with Web3 wallets (e.g., Metamask) and

1.4.3
latest
Source
npmnpm
Version published
Weekly downloads
171
-61.4%
Maintainers
2
Weekly downloads
 
Created
Source

Browser service

This package provides the BrowserService class for initializing and managing a Playwright browser context, network configurations, and wallets (EOA or WalletConnect). It facilitates automated testing of interactions with Web3 wallets (e.g., Metamask) and offers convenient methods for network switching, connecting to a fork node, etc.

Installation

npm install browser-service
# or
yarn add browser-service

Quick Start

import { test, expect } from '@playwright/test';
import { BrowserService } from 'browser-service';

test.describe('Example usage of BrowserService', () => {
  let browserService: BrowserService;

  test.beforeAll(async () => {
    browserService = new BrowserService({
      networkConfig: {
        chainName: 'Holesky',
        chainId: 17000,
        rpcUrl: 'https://holesky.infura.io/v3/<YOUR_INFURA_KEY>',
      },
      walletConfig: {
        COMMON: {
          WALLET_NAME: 'METAMASK',
          EXTENSION_WALLET_NAME: 'METAMASK',
          WALLET_TYPE: 'EOA', // or 'WC' for WalletConnect
          STORE_EXTENSION_ID: 'metamask', 
          LATEST_STABLE_DOWNLOAD_LINK: 'https://example.com/metamask.crx',
        },
        SECRET_PHRASE: 'test test test test test test test test test test test junk',
        NETWORK_NAME: 'Holesky',
      },
      nodeConfig: {
        rpcUrlToMock: '**/api/rpc?chainId=17000',
      },
      enableBrowserContext: true,
    });

    // Initialize the wallet (without fork)
    await browserService.initWalletSetup();
  });

  test('Example test', async () => {
    const browserContext = await browserService.getBrowserContext();
    const page = await browserService.getBrowserContextPage();

    // Perform browser actions, testing wallet interaction with an application
    await page.goto('https://example.org');
    expect(await page.title()).toBe('Example Domain');
  });

  test.afterAll(async () => {
    // Clean up after tests
    await browserService.teardown();
  });
});

Options

  • networkConfig – describes the network (chainId, rpcUrl, chainName).
  • walletConfig – wallet settings (wallet type, extension info, etc.).
  • nodeConfig – configuration for mocking RPC requests (e.g., URL pattern).
  • browserOptions – options for launching the browser (headless, executable paths, etc.).
  • enableBrowserContext – enables or disables the use of a custom data dir for the browser context.

Methods

  • initWalletSetup(useFork?: boolean) - Launches the main wallet initialization procedure by setting up the chosen network. If useFork = true, the wallet will work through a local fork node (started automatically).
  • setupWithNode() - Explicitly starts the fork node, creates a test account, and configures the wallet to use the local network.
  • setup(commonWalletConfig?: CommonWalletConfig) - Creates the extension service, sets up the browser context, downloads and initializes the wallet in Playwright.
  • teardown() - Closes the browser context and stops the local node (if it was started).

Keywords

lido

FAQs

Package last updated on 08 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.