@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
49 lines • 1.67 kB
TypeScript
import { PublicKey, Transaction } from '@solana/web3.js';
import { TurnkeyConfig } from '../turnkeyClient.js';
import { SvmTransactionSigner } from './solana-web3js.js';
/**
* Turnkey signer for Solana/SVM transactions
* Provides a Keypair-like interface but signs transactions using Turnkey's secure enclaves
* Uses composition to access Turnkey functionality while implementing SVM interface
*
* @example
* ```typescript
* const config: TurnkeyConfig = {
* organizationId: 'your-org-id',
* apiPublicKey: process.env.TURNKEY_API_PUBLIC_KEY,
* apiPrivateKey: process.env.TURNKEY_API_PRIVATE_KEY,
* privateKeyId: 'your-private-key-id',
* publicKey: 'base58-solana-pubkey',
* };
*
* const signer = new TurnkeySealevelSigner(config);
*
* // Use with SvmMultiProtocolSignerAdapter
* const adapter = new SvmMultiProtocolSignerAdapter(
* 'solana',
* signer,
* multiProtocolProvider
* );
* ```
*/
export declare class TurnkeySealevelSigner implements SvmTransactionSigner {
private readonly manager;
private readonly turnkeySigner;
readonly publicKey: PublicKey;
constructor(config: TurnkeyConfig);
/**
* Health check - delegates to manager
*/
healthCheck(): Promise<boolean>;
/**
* Get a signer (returns this instance)
*/
getSigner(): Promise<this>;
/**
* Sign a Solana transaction using Turnkey
* This method uses Turnkey's secure enclave to sign the transaction
* and enforces any policies configured in Turnkey (e.g., IGP-only restrictions)
*/
signTransaction(transaction: Transaction): Promise<Transaction>;
}
//# sourceMappingURL=turnkey.d.ts.map