
import { Transaction } from './transaction';
import { TokenBalance } from './token';

export interface AddressDetails {
  id: string;
  balance: string;
  transactionCount: number;
  isContract: boolean;
  contractCreator: string | null;
  contractCreationTx: string | null;
  creationTimestamp: string | number | null;
  tokenHoldings: TokenBalance[];
  transactions: Transaction[];
} 


export interface TransactionObject {
  hash: string;
  blockNumber: string;
  from: string;
  to: string | null;
  value: string;
  input?: string;
  gas?: string;
  gasPrice?: string;
}


export interface AddressInfo {
  address: string;
  balance: string;
  transactionCount: number;
  isContract: boolean;
  isSystemAddress: boolean;
  description?: string;
  tokenBalances: TokenBalance[];
  creator?: string | null;
  creationTx?: string | null;
  creationTimestamp?: number | null;
}

export interface AddressTransaction {
  hash: string;
  blockNumber: number;
  timestamp: number | null;
  from: string;
  to: string | null;
  value: string;
  isContractCreation: boolean;
  status: 'success' | 'failed' | 'pending';
  txFee?: string;
}