@okxweb3/coin-ethereum
Version:
An Ethereum SDK for building Web3 wallets and applications.
48 lines (47 loc) • 2 kB
TypeScript
/// <reference types="bn.js" />
/// <reference types="node" />
import { Address } from '../ethereumjs-util';
import { BN } from '@okxweb3/crypto-lib';
import { TxData, JsonTx, AccessListEIP2930ValuesArray, AccessListEIP2930TxData, FeeMarketEIP1559ValuesArray, FeeMarketEIP1559TxData, TxValuesArray } from './types';
export declare enum Chain {
Mainnet = 1,
Ropsten = 3,
Rinkeby = 4,
Kovan = 42,
Goerli = 5,
Sepolia = 11155111
}
export declare abstract class BaseTransaction<TransactionObject> {
private readonly _type;
readonly nonce: BN;
readonly gasLimit: BN;
readonly to?: Address;
readonly value: BN;
readonly data: Buffer;
readonly v?: BN;
readonly r?: BN;
readonly s?: BN;
protected activeCapabilities: number[];
protected DEFAULT_CHAIN: Chain;
protected constructor(txData: TxData | AccessListEIP2930TxData | FeeMarketEIP1559TxData);
get transactionType(): number;
get type(): number;
abstract raw(): TxValuesArray | AccessListEIP2930ValuesArray | FeeMarketEIP1559ValuesArray;
abstract serialize(): Buffer;
abstract getMessageToSign(hashMessage: false): Buffer | Buffer[];
abstract getMessageToSign(hashMessage?: true): Buffer;
abstract hash(): Buffer;
isSigned(): boolean;
abstract toJSON(): JsonTx;
sign(privateKey: Buffer): TransactionObject;
protected abstract _processSignature(v: number, r: Buffer, s: Buffer): TransactionObject;
protected abstract _processSignatureWithRawV(v: number, r: Buffer, s: Buffer): TransactionObject;
protected _validateCannotExceedMaxInteger(values: {
[key: string]: BN | undefined;
}, bits?: number, cannotEqual?: boolean): void;
protected _getSharedErrorPostfix(): string;
abstract errorStr(): string;
protected abstract _errorMsg(msg: string): string;
processSignature(v: number, r: Buffer, s: Buffer): TransactionObject;
processSignatureWithRawV(v: number, r: Buffer, s: Buffer): TransactionObject;
}