edwin-sdk
Version:
SDK for integrating AI agents with DeFi protocols
55 lines (48 loc) • 1.93 kB
text/typescript
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');
}
}