export interface SmartContract {
  deployed_bytecode: string | null;
  creation_bytecode: string | null;
  is_self_destructed: boolean;
  abi: Array<Record<string, unknown>> | null;
  compiler_version: string | null;
  evm_version: string | null;
  optimization_enabled: boolean | null;
  optimization_runs: number | null;
  name: string | null;
  verified_at: string | null;
  is_verified: boolean | null;
  source_code: string | null;
  can_be_visualized_via_sol2uml: boolean | null;
}

export interface SmartContractReadMethod {
  inputs: Array<SmartContractMethodInput>;
  outputs: Array<SmartContractMethodOutput>;
  method_id: string;
  name: string;
  stateMutability: string;
  type: string;
}

export interface SmartContractMethodInput {
  internalType: string;
  name: string;
  type: string;
}

export interface SmartContractMethodOutput extends SmartContractMethodInput {
  value: string;
}
