@okxweb3/coin-ethereum
Version:
An Ethereum SDK for building Web3 wallets and applications.
129 lines (128 loc) • 3.67 kB
TypeScript
/// <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 {};