otterscan/src/types.ts

111 lines
2.1 KiB
TypeScript
Raw Normal View History

import { BigNumber } from "@ethersproject/bignumber";
import { Log } from "@ethersproject/providers";
2021-07-01 18:21:40 +00:00
export enum ConnectionStatus {
CONNECTING,
NOT_ETH_NODE,
NOT_ERIGON,
NOT_OTTERSCAN_PATCHED,
CONNECTED,
}
2021-07-01 18:21:40 +00:00
export type ProcessedTransaction = {
blockNumber: number;
timestamp: number;
miner?: string;
2021-07-01 18:21:40 +00:00
idx: number;
hash: string;
from?: string;
to: string | null;
createdContractAddress?: string;
internalMinerInteraction?: boolean;
2021-07-01 18:21:40 +00:00
value: BigNumber;
fee: BigNumber;
gasPrice: BigNumber;
data: string;
status: number;
};
export type TransactionChunk = {
txs: ProcessedTransaction[];
firstPage: boolean;
lastPage: boolean;
};
export type TransactionData = {
transactionHash: string;
from: string;
to?: string;
value: BigNumber;
tokenTransfers: TokenTransfer[];
tokenMetas: TokenMetas;
type: number;
maxFeePerGas?: BigNumber | undefined;
maxPriorityFeePerGas?: BigNumber | undefined;
gasPrice: BigNumber;
2021-07-28 07:53:55 +00:00
gasLimit: BigNumber;
nonce: number;
data: string;
confirmedData?: ConfirmedTransactionData | undefined;
};
export type ConfirmedTransactionData = {
status: boolean;
blockNumber: number;
transactionIndex: number;
blockBaseFeePerGas?: BigNumber | undefined | null;
blockTransactionCount: number;
confirmations: number;
timestamp: number;
miner: string;
createdContractAddress?: string;
fee: BigNumber;
gasUsed: BigNumber;
logs: Log[];
};
// The VOID...
export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
// TODO: replace all occurrences of plain string
export type ChecksummedAddress = string;
export enum AddressContext {
FROM,
TO,
}
export type From = {
current: string;
depth: number;
};
2021-07-21 19:06:51 +00:00
export enum OperationType {
2021-07-19 23:49:54 +00:00
TRANSFER = 0,
SELF_DESTRUCT = 1,
2021-07-21 18:13:18 +00:00
CREATE = 2,
CREATE2 = 3,
2021-07-19 23:49:54 +00:00
}
2021-07-21 19:06:51 +00:00
export type InternalOperation = {
type: OperationType;
from: string;
to: string;
value: BigNumber;
};
export type TokenTransfer = {
token: string;
from: string;
to: string;
value: BigNumber;
};
export type TokenMeta = {
name: string;
symbol: string;
decimals: number;
};
export type TokenMetas = Record<string, TokenMeta | null | undefined>;