- name: account_state
  type: output
  fields:
    - name: balance
      type: string
    - name: nonce
      type: string
    - name: num_txs
      type: string
    - name: address
      type: string
    - name: pk
      type: string
    - name: type
      type: wallet_type
    - name: moniker
      type: string
    - name: context
      type: state_context
    - name: issuer
      type: string
    - name: migrated_to
      type: [string]
    - name: migrated_from
      type: [string]
    - name: num_assets
      type: string
    - name: stake
      type: stake_context
    - name: pinned_files
      type: circular_queue
    - name: poke
      type: poke_info
    - name: deposit_received
      type: string
    - name: data
      type: any
      meta: resolver=google_protobuf_any 


- name: asset_state
  type: output
  fields:
    - name: address
      type: string
    - name: owner
      type: string
    - name: moniker
      type: string
    - name: readonly
      type: boolean
    - name: transferrable
      type: boolean
    - name: ttl
      type: int
    - name: consumed_time
      type: timestamp
    - name: issuer
      type: string
    - name: stake
      type: stake_context
    - name: context
      type: state_context
    - name: data
      type: any
      meta: resolver=google_protobuf_any 


- name: core_protocol
  type: output
  fields:
    - name: name
      type: string
    - name: address
      type: string


- name: forge_state
  type: output
  fields:
    - name: address
      type: string
    - name: consensus
      type: consensus_params
    - name: tasks
      type: [tasks_entry]
    - name: stake_summary
      type: [stake_summary_entry]
    - name: version
      type: string
    - name: forge_app_hash
      type: string
    - name: token
      type: forge_token
    - name: tx_config
      type: transaction_config
    - name: stake_config
      type: stake_config
    - name: poke_config
      type: poke_config
    - name: protocols
      type: [core_protocol]
    - name: upgrade_info
      type: upgrade_info
    - name: data
      type: any
      meta: resolver=google_protobuf_any 


- name: tasks_entry
  type: output
  fields:
    - name: key
      type: string
    - name: value
      type: upgrade_tasks


- name: stake_summary_entry
  type: output
  fields:
    - name: key
      type: int
    - name: value
      type: stake_summary


- name: root_state
  type: output
  fields:
    - name: address
      type: string
    - name: account
      type: string
    - name: asset
      type: string
    - name: receipt
      type: string
    - name: protocol
      type: string


- name: stake_state
  type: output
  fields:
    - name: address
      type: string
    - name: from
      type: string
    - name: to
      type: string
    - name: balance
      type: string
    - name: message
      type: string
    - name: context
      type: state_context
    - name: data
      type: any
      meta: resolver=google_protobuf_any 


- name: statistics_state
  type: output
  fields:
    - name: address
      type: string
    - name: num_blocks
      type: string
    - name: num_txs
      type: string
    - name: num_stakes
      type: string
    - name: num_validators
      type: int
    - name: tx_statistics
      type: tx_statistics


- name: blacklist_state
  type: output
  fields:
    - name: address
      type: [string]


- name: protocol_state
  type: output
  fields:
    - name: address
      type: string
    - name: itx
      type: deploy_protocol_tx
    - name: root_hash
      type: string
    - name: status
      type: protocol_status
    - name: migrated_to
      type: [string]
    - name: migrated_from
      type: [string]
    - name: context
      type: state_context
    - name: data
      type: any
      meta: resolver=google_protobuf_any 


- name: tether_state
  type: output
  fields:
    - name: hash
      type: string
    - name: available
      type: boolean
    - name: custodian
      type: string
    - name: depositor
      type: string
    - name: withdrawer
      type: string
    - name: value
      type: string
    - name: commission
      type: string
    - name: charge
      type: string
    - name: target
      type: string
    - name: locktime
      type: timestamp
    - name: address
      type: string


- name: tether_info
  type: output
  fields:
    - name: available
      type: boolean
    - name: hash
      type: string

