name: CoreBlockLog
description: Block log contract
structs: {}
typedefs: {}
state: {}
funcs: {}
views:
  controlAddresses:
    results:
      stateControllerAddress=s: Address
      governingAddress=g: Address
      # the addresses have been set as state controller address or governing address since the following block index
      blockIndex=n: Uint32
  getBlockInfo:
    params:
      blockIndex=n: Uint32 
    results:
      blockIndex=n: Uint32
      blockInfo=i: Bytes
  getRequestIDsForBlock:
    params:
      blockIndex=n: Uint32
    results:
      requestID=u: RequestID[] # native contract, so this is an Array16
  getRequestReceipt:
    params:
      requestID=u: RequestID
    results:
      requestRecord=d: Bytes
      blockIndex=n: Uint32
      requestIndex=r: Uint16
  getRequestReceiptsForBlock:
    params:
      blockIndex=n: Uint32
    results:
      requestRecord=d: Bytes[] # native contract, so this is an Array16
  isRequestProcessed:
    params:
      requestID=u: RequestID
    results:
      requestProcessed=p: Bool
  getEventsForRequest:
    params:
      requestID=u: RequestID
    results:
      event=e: Bytes[] # native contract, so this is an Array16
  getEventsForBlock:
    params:
      blockIndex=n: Uint32
    results:
      event=e: Bytes[] # native contract, so this is an Array16
  getEventsForContract:
    params:
      contractHname=h: Hname
      fromBlock=f: Uint32?
      toBlock=t: Uint32?
    results:
      event=e: Bytes[] # native contract, so this is an Array16
