12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import type { TypedDataDomain, TypedDataField } from "../hash/index.js";
- import type { TransactionLike } from "../transaction/index.js";
- import type { BlockTag, Provider, TransactionRequest, TransactionResponse } from "./provider.js";
- import type { Signer } from "./signer.js";
- /**
- * An **AbstractSigner** includes most of teh functionality required
- * to get a [[Signer]] working as expected, but requires a few
- * Signer-specific methods be overridden.
- *
- */
- export declare abstract class AbstractSigner<P extends null | Provider = null | Provider> implements Signer {
- /**
- * The provider this signer is connected to.
- */
- readonly provider: P;
- /**
- * Creates a new Signer connected to %%provider%%.
- */
- constructor(provider?: P);
- /**
- * Resolves to the Signer address.
- */
- abstract getAddress(): Promise<string>;
- /**
- * Returns the signer connected to %%provider%%.
- *
- * This may throw, for example, a Signer connected over a Socket or
- * to a specific instance of a node may not be transferrable.
- */
- abstract connect(provider: null | Provider): Signer;
- getNonce(blockTag?: BlockTag): Promise<number>;
- populateCall(tx: TransactionRequest): Promise<TransactionLike<string>>;
- populateTransaction(tx: TransactionRequest): Promise<TransactionLike<string>>;
- estimateGas(tx: TransactionRequest): Promise<bigint>;
- call(tx: TransactionRequest): Promise<string>;
- resolveName(name: string): Promise<null | string>;
- sendTransaction(tx: TransactionRequest): Promise<TransactionResponse>;
- abstract signTransaction(tx: TransactionRequest): Promise<string>;
- abstract signMessage(message: string | Uint8Array): Promise<string>;
- abstract signTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): Promise<string>;
- }
- /**
- * A **VoidSigner** is a class deisgned to allow an address to be used
- * in any API which accepts a Signer, but for which there are no
- * credentials available to perform any actual signing.
- *
- * This for example allow impersonating an account for the purpose of
- * static calls or estimating gas, but does not allow sending transactions.
- */
- export declare class VoidSigner extends AbstractSigner {
- #private;
- /**
- * The signer address.
- */
- readonly address: string;
- /**
- * Creates a new **VoidSigner** with %%address%% attached to
- * %%provider%%.
- */
- constructor(address: string, provider?: null | Provider);
- getAddress(): Promise<string>;
- connect(provider: null | Provider): VoidSigner;
- signTransaction(tx: TransactionRequest): Promise<string>;
- signMessage(message: string | Uint8Array): Promise<string>;
- signTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): Promise<string>;
- }
- //# sourceMappingURL=abstract-signer.d.ts.map
|