UNPKG

edwin-sdk

Version:

SDK for integrating AI agents with DeFi protocols

55 lines (48 loc) 1.93 kB
import { Connection, Keypair, PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js'; import { BaseSolanaWalletClient } from '../../base_client'; /** * Read-only Solana wallet client that can only perform operations that don't require signing */ export class PublicKeyClient extends BaseSolanaWalletClient { constructor(publicKey: string | PublicKey) { super(publicKey); } /** * Not supported in public key client - throws error */ async signTransaction<T extends Transaction | VersionedTransaction>(_transaction: T): Promise<T> { throw new Error('Cannot sign transactions with a read-only PublicKeyClient'); } /** * Not supported in public key client - throws error */ async signAllTransactions<T extends Transaction | VersionedTransaction>(_transactions: T[]): Promise<T[]> { throw new Error('Cannot sign transactions with a read-only PublicKeyClient'); } /** * Not supported in public key client - throws error */ async signMessage(_message: Uint8Array): Promise<Uint8Array> { throw new Error('Cannot sign messages with a read-only PublicKeyClient'); } /** * Not supported in public key client - throws error */ async sendTransaction<T extends Transaction | VersionedTransaction>( _connection: Connection, _transaction: T, _signers?: Keypair[] ): Promise<string> { throw new Error('Cannot send transactions with a read-only PublicKeyClient'); } /** * Not supported in public key client - throws error */ async waitForConfirmationGracefully( _connection: Connection, _signature: string, _timeout?: number ): Promise<{ err: unknown; confirmationStatus?: 'confirmed' | 'finalized' | 'processed' }> { throw new Error('Cannot wait for confirmation with a read-only PublicKeyClient'); } }