UNPKG

@okxweb3/coin-ethereum

Version:

An Ethereum SDK for building Web3 wallets and applications.

129 lines (128 loc) 3.67 kB
/// <reference types="node" /> import { AddressLike, BNLike, BufferLike, PrefixedHexString } from '../ethereumjs-util'; import { default as Transaction } from './legacyTransaction'; import { default as AccessListEIP2930Transaction } from './eip2930Transaction'; import { default as FeeMarketEIP1559Transaction } from './eip1559Transaction'; import { EOACodeEIP7702Transaction } from "./index"; export type AccessListItem = { address: PrefixedHexString; storageKeys: PrefixedHexString[]; }; export type AccessListBufferItem = [Buffer, Buffer[]]; export type AccessListBuffer = AccessListBufferItem[]; export type AccessList = AccessListItem[]; export type AccessListBytesItem = [Uint8Array, Uint8Array[]]; export type AccessListBytes = AccessListBytesItem[]; export declare function isAccessListBuffer(input: AccessListBuffer | AccessList): input is AccessListBuffer; export declare function isAccessList(input: AccessListBuffer | AccessList): input is AccessList; export declare function isAuthorizationListBytes(input: AuthorizationListBytes | AuthorizationList): input is AuthorizationListBytes; export declare function isAuthorizationList(input: AuthorizationListBytes | AuthorizationList): input is AuthorizationList; export type TypedTransaction = Transaction | AccessListEIP2930Transaction | FeeMarketEIP1559Transaction | EOACodeEIP7702Transaction; export type TxData = { nonce?: BNLike; gasPrice?: BNLike; gasLimit?: BNLike; to?: AddressLike; value?: BNLike; data?: BufferLike; v?: BNLike; r?: BNLike; s?: BNLike; type?: BNLike; chainId?: BNLike; }; export interface AccessListEIP2930TxData extends TxData { chainId?: BNLike; accessList?: AccessListBuffer | AccessList; } export interface FeeMarketEIP1559TxData extends AccessListEIP2930TxData { gasPrice?: never; maxPriorityFeePerGas?: BNLike; maxFeePerGas?: BNLike; } export type TxValuesArray = Buffer[]; export type AccessListEIP2930ValuesArray = [ Buffer, Buffer, Buffer, Buffer, Buffer, Buffer, Buffer, AccessListBuffer, Buffer?, Buffer?, Buffer? ]; export type FeeMarketEIP1559ValuesArray = [ Buffer, Buffer, Buffer, Buffer, Buffer, Buffer, Buffer, Buffer, AccessListBuffer, Buffer?, Buffer?, Buffer? ]; export type EOACode7702TxValuesArray = [ Buffer, Buffer, Buffer, Buffer, Buffer, Buffer, Buffer, Buffer, AccessListBuffer, AuthorizationListBytes, Buffer?, Buffer?, Buffer? ]; type JsonAccessListItem = { address: string; storageKeys: string[]; }; export interface JsonTx { nonce?: string; gasPrice?: string; gasLimit?: string; to?: string; data?: string; v?: string; r?: string; s?: string; value?: string; chainId?: string; accessList?: JsonAccessListItem[]; authorizationList?: AuthorizationList; type?: string; maxPriorityFeePerGas?: string; maxFeePerGas?: string; } export interface EOACodeEIP7702TxData extends FeeMarketEIP1559TxData { authorizationList?: AuthorizationListBytes | AuthorizationList | never; } export type AuthorizationListItem = { chainId: PrefixedHexString; address: PrefixedHexString; nonce: PrefixedHexString; yParity: PrefixedHexString; r: PrefixedHexString; s: PrefixedHexString; }; export type AuthorizationListBytesItem = [ Uint8Array, Uint8Array, Uint8Array, Uint8Array, Uint8Array, Uint8Array ]; export type AuthorizationListBytes = AuthorizationListBytesItem[]; export type AuthorizationList = AuthorizationListItem[]; export {};