Class for MetaMask connection

Hierarchy

  • EventEmitter
    • MetaMask

Constructors

  • Parameters

    • config: Partial<MetaMaskConfig> = {}

    Returns MetaMask

Properties

AUTH_DATA_TABLE: string
config: MetaMaskConfig
customProvider: null | JsonRpcProvider = null
customWallet: null | Wallet = null
DEFAULT_CONFIG: MetaMaskConfig = ...
MESSAGE_TO_SIGN: "I Love Shogun!"
provider: null | BrowserProvider = 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 with caching

    Parameters

    • address: string

    Returns Promise<MetaMaskCredentials>

  • Generate credentials from signature

    Parameters

    • address: string
    • signature: string

    Returns MetaMaskCredentials

  • Generate fallback credentials when signature request fails Questo è meno sicuro della firma, ma permette di procedere con l'autenticazione

    Parameters

    • address: string

    Returns MetaMaskCredentials

  • Generate deterministic password from signature

    Parameters

    • signature: string

      Cryptographic signature

    Returns Promise<string>

    64-character hex string

    For invalid signature

  • 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 signer instance using BrowserProvider

    Returns Promise<Signer>

  • Initialize the provider synchronously

    Returns void

  • Checks if MetaMask 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

  • Request signature using BrowserProvider

    Parameters

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

    Returns Promise<string>

  • Configure custom JSON-RPC provider

    Parameters

    • rpcUrl: string

      RPC endpoint URL

    • privateKey: string

      Wallet private key

    Returns void

    For invalid parameters

  • 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 in the browser

    Returns boolean

    true if MetaMask is available