@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
61 lines • 2.25 kB
TypeScript
import { ethers } from 'ethers';
import { TurnkeyConfig } from '../turnkeyClient.js';
/**
* Turnkey signer for EVM transactions
* Uses Turnkey's secure enclaves to sign transactions without exposing private keys
* This is a custom ethers v5-compatible Signer that uses Turnkey SDK directly
* Uses composition to access Turnkey functionality while extending ethers.Signer
*
* @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: '0x...', // Ethereum address
* };
*
* const provider = new ethers.providers.JsonRpcProvider('...');
* const signer = new TurnkeyEvmSigner(config, provider);
*
* // Use with MultiProvider
* multiProvider.setSigner('ethereum', signer);
* ```
*/
export declare class TurnkeyEvmSigner extends ethers.Signer {
private readonly manager;
readonly address: string;
readonly provider: ethers.providers.Provider | undefined;
constructor(config: TurnkeyConfig, provider?: ethers.providers.Provider);
/**
* Health check - delegates to manager
*/
healthCheck(): Promise<boolean>;
/**
* Get an ethers Signer connected to the provided provider
* This returns a new instance with the provider connected
*/
getSigner(provider: ethers.providers.Provider): Promise<ethers.Signer>;
/**
* Connect this signer to a provider (creates new instance with proper configuration)
*/
connect(provider: ethers.providers.Provider): TurnkeyEvmSigner;
/**
* Get the address of this signer
*/
getAddress(): Promise<string>;
/**
* Sign a transaction using Turnkey
*/
signTransaction(transaction: ethers.providers.TransactionRequest): Promise<string>;
/**
* Sign a message using Turnkey
*/
signMessage(message: string | ethers.utils.Bytes): Promise<string>;
/**
* Populate a transaction with default values (nonce, gas, etc.)
*/
populateTransaction(transaction: ethers.providers.TransactionRequest): Promise<ethers.providers.TransactionRequest>;
}
//# sourceMappingURL=turnkey.d.ts.map