The package that gives access to an Extension that allows integrating Solana/web3.js to our client.

Functions

SolanaExtension method

SolanaExtension(): Extension<ISolanaExtension>

A method that, when passed to the client instance, injects the following modules into it:

solana module

Provides methods to create solana connection and signer for solana wallets.

The reference types below are simplified for the sake of readability. See the type specification for details.

PropertyTypeDescription
getClient(props: { wallet: Wallet }) => ISolanaSignerCrate a Signer for the wallet that allows for sign messages and transactions.
getConnection(connectionConfig?: ConnectionConfig | Commitment) => ConnectionCreate a @solana/web3.js Connection object to query the blockchain. Accepts an same argument that is Solana’s Connection class second argument.

Types

ISolanaExtension type

Type of the solana extension.

import {
  Connection,
  PublicKey,
  SendOptions,
  Transaction,
  TransactionSignature,
  VersionedTransaction,
} from '@solana/web3.js'

import { type Wallet } from '@dynamic-labs/client'

type SignedMessage = {
  signature: Uint8Array
}

type ISolanaSigner = {
  publicKey: PublicKey
  signTransaction<T extends Transaction | VersionedTransaction>(
    transaction: T
  ): Promise<T>
  signAllTransactions<T extends Transaction | VersionedTransaction>(
    transactions: T[]
  ): Promise<T[]>
  signAndSendTransaction<T extends Transaction | VersionedTransaction>(
    transaction: T,
    options?: SendOptions
  ): Promise<{ signature: TransactionSignature }>
  signMessage(message: Uint8Array, encoding?: string): Promise<SignedMessage>
}

type ISolanaExtension = {
  solana: {
    getConnection: (
      connectionConfig?: ConnectionConfig | Commitment
    ) => Connection
    getSigner: (props: { wallet: Wallet }) => ISolanaSigner
  }
}