TypeScript Types

Complete reference for all exported TypeScript types and interfaces

The SDK exports comprehensive TypeScript definitions for type-safe development. This page documents all exported types, interfaces, and constants.

Importing Types

import type {
  WidgetSDKConfig,
  WidgetSDKRef,
  TransactionRequest,
  EvmTransactionRequest,
  SolanaTransactionRequest,
  EvmTransactionData,
  TransactionTokenMetadata,
} from '@oobit/react-native-sdk';

Core Types

WidgetSDKConfig

Configuration interface for the WidgetSDK component props.

interface WidgetSDKConfig {
  accessToken: string;
  userWalletAddress: string;
  onTransactionRequested: (transaction: TransactionRequest) => void;
  onClose?: () => void;
}
PropertyTypeRequiredDescription
accessTokenstringYesJWT access token from your backend
userWalletAddressstringYesUser's wallet address for deposits
onTransactionRequested(transaction: TransactionRequest) => voidYesCallback when transaction is requested
onClose() => voidNoCallback when widget is closed

Transaction Types

TransactionRequest

Union type representing a transaction request. Can be either EVM or Solana.

type TransactionRequest = EvmTransactionRequest | SolanaTransactionRequest;

Use the type field to discriminate between chains:

function handleTransaction(tx: TransactionRequest) {
  if (tx.type === 'evm') {
    // Handle EVM transaction
    console.log('Chain ID:', tx.chainId);
  } else {
    // Handle Solana transaction
    console.log('Solana transaction');
  }
}

See Handling Transactions for detailed usage.


EvmTransactionRequest

EVM-compatible blockchain transaction (Ethereum, Polygon, BSC, etc.).

interface EvmTransactionRequest {
  type: 'evm';
  chainId: number;
  transaction: EvmTransactionData;
  tokenMetadata: TransactionTokenMetadata;
}
PropertyTypeDescription
type'evm'Discriminator for EVM transactions
chainIdnumberNetwork identifier (1 = Ethereum, 137 = Polygon, etc.)
transactionEvmTransactionDataTransaction data to be signed
tokenMetadataTransactionTokenMetadataToken info for display

EvmTransactionData

Raw EVM transaction data.

interface EvmTransactionData {
  to: string;
  data: string;
  value: string;
}
PropertyTypeDescription
tostringDestination address
datastringEncoded transaction data (hex)
valuestringNative token value in wei (hex)

SolanaTransactionRequest

Solana blockchain transaction.

interface SolanaTransactionRequest {
  type: 'solana';
  transaction: string;
  tokenMetadata: TransactionTokenMetadata;
}
PropertyTypeDescription
type'solana'Discriminator for Solana transactions
transactionstringSerialized transaction (base64)
tokenMetadataTransactionTokenMetadataToken info for display

TransactionTokenMetadata

Token information for display purposes.

interface TransactionTokenMetadata {
  symbol: string;
  amount: string;
  decimals: number;
}
PropertyTypeDescription
symbolstringToken symbol (e.g., "USDC", "ETH")
amountstringHuman-readable amount
decimalsnumberToken decimal places

See Also