UNPKG

w3wallets

Version:
96 lines (86 loc) 3.44 kB
import * as playwright_test from 'playwright/test'; import { Page, test, BrowserContext } from '@playwright/test'; /** * Represents the supported network types for the BackPack application. */ type BackPackNetwork = "Solana" | "Eclipse" | "Ethereum" | "Polygon" | "Base" | "Arbitrum" | "Optimism"; type WalletName = "backpack" | "polkadotJS" | "metamask"; type NoDuplicates<T extends readonly unknown[], Acc extends readonly unknown[] = []> = T extends [infer Head, ...infer Tail] ? Head extends Acc[number] ? never : [Head, ...NoDuplicates<Tail, [...Acc, Head]>] : T; interface IWallet { gotoOnboardPage(): Promise<void>; } declare abstract class Wallet implements IWallet { page: Page; protected extensionId: string; constructor(page: Page, extensionId: string); abstract gotoOnboardPage(): Promise<void>; } declare class Backpack extends Wallet { private defaultPassword; private currentAccountId; private maxAccountId; gotoOnboardPage(): Promise<void>; onboard(network: BackPackNetwork, privateKey: string): Promise<void>; addAccount(network: BackPackNetwork, privateKey: string): Promise<void>; /** * Switch account * @param id The first added account has id 1, the second – 2, and so on */ switchAccount(id: number): Promise<void>; unlock(): Promise<void>; setRPC(network: BackPackNetwork, rpc: string): Promise<void>; ignoreAndProceed(): Promise<void>; approve(): Promise<void>; deny(): Promise<void>; private _clickOnAccount; private _importAccount; } declare class PolkadotJS extends Wallet { private defaultPassword; gotoOnboardPage(): Promise<void>; onboard(seed: string, password?: string, name?: string): Promise<void>; selectAllAccounts(): Promise<void>; selectAccount(accountId: string): Promise<void>; enterPassword(password?: string): Promise<void>; approve(): Promise<void>; deny(): Promise<void>; private _getLabeledInput; } type NetworkSettings = { name: string; rpc: string; chainId: number; currencySymbol: string; }; declare class Metamask extends Wallet { private defaultPassword; gotoOnboardPage(): Promise<void>; /** * * @param mnemonic 12-word mnemonic seed phrase */ onboard(mnemonic: string, password?: string): Promise<void>; switchAccount(accountName: { name: string; }): Promise<void>; switchAccount(accountAddress: { address: string; }): Promise<void>; importAccount(privateKey: string): Promise<void>; addAccount(accountName?: string): Promise<void>; getAccountName(): Promise<string>; connectToNetwork(networkName: string, networkType?: "Popular" | "Custom"): Promise<void>; addCustomNetwork(settings: NetworkSettings): Promise<void>; enableTestNetworks(): Promise<void>; approve(): Promise<void>; deny(): Promise<void>; private usingNotificationPage; private clickTopRightCornerToCloseAllTheMarketingBullshit; } declare function withWallets<T extends readonly WalletName[]>(test: typeof test, ...config: NoDuplicates<T>): playwright_test.TestType<playwright_test.PlaywrightTestArgs & playwright_test.PlaywrightTestOptions & { context: BrowserContext; backpack: Backpack; polkadotJS: PolkadotJS; metamask: Metamask; }, playwright_test.PlaywrightWorkerArgs & playwright_test.PlaywrightWorkerOptions>; export { withWallets };