ThirdwebWalletHandle

This file defines the FWalletHandle struct, which provides a unique handle for distinguishing different types of wallets in the Thirdweb SDK. It supports a variety of operations such as managing wallets, handling sessions, and interacting with smart contract wallets.

Key Components

FWalletHandle

  • A unique handle that distinguishes wallets.
  • Key Types:
    • InvalidHandle: Represents an uninitialized or invalid handle.
    • PrivateKey: Represents a private key wallet.
    • InApp: Represents an in-app wallet.
    • Smart: Represents a smart contract wallet.

Core Functions

  • IsValid(): Checks if the handle is valid.
  • Invalidate(): Clears the handle, making it invalid.
  • FromPrivateKey(PrivateKey): Creates a private key wallet handle from a private key.
  • GeneratePrivateKey(): Generates a new private key wallet handle.
  • IsDeployed(bDeployed, Error): Checks if the smart wallet is deployed.
  • IsConnected(): Checks if the wallet is connected to a session.
  • Disconnect(): Disconnects a wallet from a session.
  • ToAddress(): Retrieves the public address of the wallet.
  • VerifyOTP(OTP, CanRetry, Error): Verifies an OTP for in-app wallets.
  • SendOTP(Error): Sends an OTP for in-app wallets.
  • FetchOAuthLoginURL(RedirectUrl, LoginLink, Error): Fetches the OAuth login URL for in-app wallets.
  • SignInWithOAuth(AuthResult, Error): Signs in with OAuth for in-app wallets.
  • CreateSessionKey(Signer, ApprovedTargets, NativeTokenLimitPerTransactionInWei, PermissionStart, PermissionEnd, RequestValidityStart, RequestValidityEnd, TransactionHash, Error): Creates a session key for a smart wallet.
  • RevokeSessionKey(Signer, Error): Revokes a session key for a smart wallet.
  • GetAdmins(Admins, Error): Retrieves the admins of a smart wallet.
  • AddAdmin(Signer, Error): Adds an admin to a smart wallet.
  • RemoveAdmin(Signer, Error): Removes an admin from a smart wallet.
  • GetActiveSigners(Signers, Error): Retrieves the active signers of a smart wallet.
  • Sign(Message): Signs a message with the wallet.

Utility Methods

  • operator==: Compares two wallet handles for equality.
  • operator!=: Compares two wallet handles for inequality.
  • ToString(): Returns a string representation of the wallet handle.

Internal Implementation Notes

  • The FWalletHandle struct interacts with the Thirdweb SDK through various functions, providing the core functionality for wallet management within the Unreal Engine environment.