- name: status_code
  type: enum
  fields:
    - type: ok
      meta: value=0
    - type: invalid_nonce
      meta: value=1
    - type: invalid_signature
      meta: value=2
    - type: invalid_sender_state
      meta: value=3
    - type: invalid_receiver_state
      meta: value=4
    - type: insufficient_data
      meta: value=5
    - type: insufficient_fund
      meta: value=6
    - type: invalid_owner
      meta: value=7
    - type: invalid_tx
      meta: value=8
    - type: unsupported_tx
      meta: value=9
    - type: expired_tx
      meta: value=10
    - type: too_many_txs
      meta: value=11
    - type: invalid_lock_status
      meta: value=12
    - type: invalid_request
      meta: value=13
    - type: invalid_moniker
      meta: value=16
    - type: invalid_passphrase
      meta: value=17
    - type: invalid_multisig
      meta: value=20
    - type: invalid_wallet
      meta: value=21
    - type: invalid_chain_id
      meta: value=22
    - type: consensus_rpc_error
      meta: value=24
    - type: storage_rpc_error
      meta: value=25
    - type: noent
      meta: value=26
    - type: account_migrated
      meta: value=27
    - type: unsupported_stake
      meta: value=30
    - type: insufficient_stake
      meta: value=31
    - type: invalid_stake_state
      meta: value=32
    - type: expired_wallet_token
      meta: value=33
    - type: banned_unstake
      meta: value=34
    - type: invalid_asset
      meta: value=35
    - type: invalid_tx_size
      meta: value=36
    - type: invalid_signer_state
      meta: value=37
    - type: invalid_forge_state
      meta: value=38
    - type: expired_asset
      meta: value=39
    - type: untransferrable_asset
      meta: value=40
    - type: readonly_asset
      meta: value=41
    - type: consumed_asset
      meta: value=42
    - type: invalid_deposit_value
      meta: value=43
    - type: exceed_deposit_cap
      meta: value=44
    - type: invalid_deposit_target
      meta: value=45
    - type: invalid_depositor
      meta: value=46
    - type: invalid_withdrawer
      meta: value=47
    - type: duplicate_tether
      meta: value=48
    - type: invalid_expiry_date
      meta: value=49
    - type: invalid_deposit
      meta: value=50
    - type: invalid_custodian
      meta: value=51
    - type: forbidden
      meta: value=403
    - type: internal
      meta: value=500
    - type: timeout
      meta: value=504

- name: topic_type
  type: enum
  fields:
    - type: transfer
      meta: value=0
    - type: exchange
      meta: value=1
    - type: declare
      meta: value=2
    - type: create_asset
      meta: value=3
    - type: update_asset
      meta: value=4
    - type: stake
      meta: value=5
    - type: account_migrate
      meta: value=6
    - type: begin_block
      meta: value=16
    - type: end_block
      meta: value=17
    - type: consensus_upgrade
      meta: value=21
    - type: declare_file
      meta: value=22
    - type: sys_upgrade
      meta: value=23
    - type: application
      meta: value=24
    - type: consume_asset
      meta: value=25
    - type: poke
      meta: value=26
    - type: account_state
      meta: value=129
    - type: asset_state
      meta: value=130
    - type: forge_state
      meta: value=131
    - type: stake_state
      meta: value=132
    - type: protocol_state
      meta: value=133

- name: key_type
  type: enum
  fields:
    - type: ed25519
      meta: value=0
    - type: secp256k1
      meta: value=1

- name: hash_type
  type: enum
  fields:
    - type: keccak
      meta: value=0
    - type: sha3
      meta: value=1
    - type: sha2
      meta: value=2
    - type: keccak_384
      meta: value=6
    - type: sha3_384
      meta: value=7
    - type: keccak_512
      meta: value=13
    - type: sha3_512
      meta: value=14

- name: encoding_type
  type: enum
  fields:
    - type: base16
      meta: value=0
    - type: base58
      meta: value=1

- name: role_type
  type: enum
  fields:
    - type: role_account
      meta: value=0
    - type: role_node
      meta: value=1
    - type: role_device
      meta: value=2
    - type: role_application
      meta: value=3
    - type: role_smart_contract
      meta: value=4
    - type: role_bot
      meta: value=5
    - type: role_asset
      meta: value=6
    - type: role_stake
      meta: value=7
    - type: role_validator
      meta: value=8
    - type: role_group
      meta: value=9
    - type: role_tx
      meta: value=10
    - type: role_tether
      meta: value=11
    - type: role_any
      meta: value=63

- name: upgrade_type
  type: enum
  fields:
    - type: config_app
      meta: value=0
    - type: config_forge
      meta: value=1
    - type: config_dfs
      meta: value=2
    - type: config_consensus
      meta: value=3
    - type: config_p2p
      meta: value=4
    - type: exe_app
      meta: value=10
    - type: exe_forge
      meta: value=11
    - type: exe_dfs
      meta: value=12
    - type: exe_consensus
      meta: value=13
    - type: exe_p2p
      meta: value=14

- name: upgrade_action
  type: enum
  fields:
    - type: verify
      meta: value=0
    - type: backup
      meta: value=1
    - type: replace
      meta: value=2
    - type: restart_app
      meta: value=10
    - type: restart_dfs
      meta: value=11
    - type: restart_consensus
      meta: value=12
    - type: restart_p2p
      meta: value=13
    - type: restart_forge
      meta: value=14
    - type: rollback_if_fail
      meta: value=30
    - type: restart_all_if_fail
      meta: value=31
    - type: crash_if_fail
      meta: value=33
    - type: drop_address_book
      meta: value=50

- name: state_type
  type: enum
  fields:
    - type: state_account
      meta: value=0
    - type: state_asset
      meta: value=1
    - type: state_channel
      meta: value=2
    - type: state_forge
      meta: value=3
    - type: state_stake
      meta: value=4

- name: stake_type
  type: enum
  fields:
    - type: stake_node
      meta: value=0
    - type: stake_user
      meta: value=1
    - type: stake_asset
      meta: value=2
    - type: stake_chain
      meta: value=3

- name: protocol_status
  type: enum
  fields:
    - type: running
      meta: value=0
    - type: paused
      meta: value=1
    - type: terminated
      meta: value=2
