/// import type { JsonRpcSigner, TransactionRequest, Web3Provider } from "@ethersproject/providers"; import BigNumber from "bignumber.js"; import type { Tx, TokenConfig } from "../../common/types"; import BaseWebToken from "./base"; import { InjectedTypedEthereumSigner, type InjectedTypedEthereumSignerMinimalSigner } from "arbundles/web"; export type MinimalSigner = InjectedTypedEthereumSignerMinimalSigner & Pick; export type MinimalProvider = { getSigner: () => MinimalSigner; } & Pick; export default class EthereumConfig extends BaseWebToken { signer: InjectedTypedEthereumSigner; wallet: MinimalProvider; w3signer: MinimalSigner; providerInstance: MinimalProvider; readonly inheritsRPC = true; constructor(config: TokenConfig); getTx(txId: string): Promise; ownerToAddress(owner: any): string; sign(data: Uint8Array): Promise; getSigner(): InjectedTypedEthereumSigner; verify(pub: any, data: Uint8Array, signature: Uint8Array): Promise; getCurrentHeight(): Promise; getFee(amount: BigNumber.Value, to?: string): Promise; sendTx(data: TransactionRequest): Promise; createTx(amount: BigNumber.Value, to: string, _fee?: string): Promise<{ txId: string | undefined; tx: any; }>; getPublicKey(): Promise; ready(): Promise; }