Class for MetaMask connection

Hierarchy

  • EventEmitter
    • Web3Connector

Constructors

  • Parameters

    • config: Partial<Web3Config> = {}

    Returns Web3Connector

Properties

config: Web3Config
customProvider: null | JsonRpcProvider = null
customWallet: null | Wallet = null
DEFAULT_CONFIG: Web3Config = ...
MESSAGE_TO_SIGN: "I Love Shogun!"
provider: null | BrowserProvider | JsonRpcProvider = null
signatureCache: Map<string, SignatureCache> = ...

Methods

  • Cache signature

    Parameters

    • address: string
    • signature: string

    Returns void

  • Cleanup event listeners

    Returns void

  • Connects to MetaMask with retry logic using BrowserProvider

    Returns Promise<ConnectionResult>

  • Emits an event with arguments

    Parameters

    • event: EventType
    • Optionaldata: unknown

    Returns boolean

  • Generates credentials for the given address

    Parameters

    • address: string

    Returns Promise<ISEAPair>

  • Generates credentials from a signature

    Parameters

    • address: string
    • signature: string

    Returns Promise<ISEAPair>

  • Generates fallback credentials (for testing/development)

    Parameters

    • address: string

    Returns Web3ConnectorCredentials

  • Generate deterministic password from signature

    Parameters

    • signature: string

      Cryptographic signature

    Returns Promise<string>

    64-character hex string

    For invalid signature

  • Get available Ethereum provider from multiple possible sources

    Returns undefined | EthereumProvider

  • Get cached signature if valid

    Parameters

    • address: string

    Returns null | string

  • Get browser-based Ethereum signer

    Returns Promise<Signer>

    Browser provider signer

    If MetaMask not detected

  • Get active provider instance using BrowserProvider

    Returns Promise<BrowserProvider | JsonRpcProvider>

  • Get active signer instance using BrowserProvider

    Returns Promise<Signer>

  • Initialize the provider synchronously with fallback mechanisms to handle conflicts between multiple wallet providers

    Returns void

  • Checks if the connector is available

    Returns boolean

  • Removes an event listener

    Parameters

    • event: EventType
    • listener: (data: unknown) => void

    Returns void

  • Registers an event listener

    Parameters

    • event: EventType
    • listener: (data: unknown) => void

    Returns void

  • Registers a one-time event listener

    Parameters

    • event: EventType
    • listener: (data: unknown) => void

    Returns void

  • Removes all listeners for an event or all events

    Parameters

    • Optionalevent: EventType

    Returns void

  • Requests signature with timeout

    Parameters

    • address: string
    • message: string
    • timeout: number = 30000

    Returns Promise<string>

  • Sets a custom provider for testing/development

    Parameters

    • rpcUrl: string
    • privateKey: string

    Returns void

  • Setup MetaMask event listeners using BrowserProvider

    Returns void

  • Initialize the BrowserProvider (async method for explicit calls)

    Returns Promise<void>

  • Validates that the address is valid

    Parameters

    • address: undefined | null | string

    Returns string

  • Verify message signature

    Parameters

    • message: string

      Original signed message

    • signature: string

      Cryptographic signature

    Returns Promise<string>

    Recovered Ethereum address

    For invalid inputs

  • Checks if MetaMask is available

    Returns boolean