UNPKG

@sphereon/ssi-sdk-web3.headless-provider

Version:

37 lines 1.77 kB
import { Provider, TransactionRequest } from '@ethersproject/abstract-provider'; import { Deferrable } from '@ethersproject/properties'; import { IKey } from '@veramo/core'; import { ethers, Signer, TypedDataDomain, TypedDataField } from 'ethers'; import { IRequiredContext, TypedDataSigner } from './types'; export declare class EthersKMSSignerBuilder { private context?; private keyRef?; private provider?; withContext(context: IRequiredContext): this; withKid(kid: string): this; withKeyRef(keyRef: Pick<IKey, 'kid'> | string): this; withProvider(provider: ethers.providers.Provider): this; build(): EthersKMSSigner; } /** * This is a Ethers signer that delegates back to the KMS for the actual signatures. * This means we do not expose private keys and can use any Secp256k1 key stored in the KMS if we want * * Be aware that the provided KeyRef needs to belong to the respective KMS, as it will use a lookup for the key in the KMS to sign */ export declare class EthersKMSSigner extends Signer implements TypedDataSigner { private readonly context; private readonly keyRef; constructor({ provider, context, keyRef }: { provider?: ethers.providers.Provider; context: IRequiredContext; keyRef: Pick<IKey, 'kid'>; }); getAddress(): Promise<string>; signTransaction(transaction: Deferrable<TransactionRequest>): Promise<string>; signRaw(message: string | Uint8Array): Promise<string>; signMessage(message: string | Uint8Array): Promise<string>; _signTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): Promise<string>; connect(provider?: Provider): EthersKMSSigner; } //# sourceMappingURL=ethers-kms-signer.d.ts.map