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() => ConnectionCreate a @solana/web3.js Connection object to query the blockchain.

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: () => Connection;
    getSigner: (props: { wallet: Wallet }) => ISolanaSigner;
  };
};