otterscan/src/types.ts

100 lines
1.7 KiB
TypeScript
Raw Normal View History

import { ethers, BigNumber } from "ethers";
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;
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 ENSReverseCache = {
[address: string]: string;
};
export type TransactionData = {
transactionHash: string;
status: boolean;
blockNumber: number;
transactionIndex: number;
confirmations: number;
timestamp: number;
miner?: string;
from: string;
to: string;
value: BigNumber;
tokenTransfers: TokenTransfer[];
tokenMetas: TokenMetas;
fee: BigNumber;
gasPrice: BigNumber;
gasLimit: BigNumber;
gasUsed: BigNumber;
gasUsedPerc: number;
nonce: number;
data: string;
logs: ethers.providers.Log[];
};
// The VOID...
export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
export enum AddressContext {
FROM,
TO,
}
export type From = {
current: string;
depth: number;
};
export type Transfer = {
from: string;
to: string;
value: BigNumber;
};
2021-07-17 18:58:33 +00:00
export type InternalTransfers = {
transfers: Transfer[];
selfDestructs: Transfer[];
};
export type TokenTransfer = {
token: string;
from: string;
to: string;
value: BigNumber;
};
export type TokenMeta = {
name: string;
symbol: string;
decimals: number;
};
export type TokenMetas = {
[tokenAddress: string]: TokenMeta;
};