{
  "nested": {
    "koinos": {
      "options": {
        "go_package": "github.com/koinos/koinos-proto-golang/v2/koinos"
      },
      "nested": {
        "block_topology": {
          "fields": {
            "id": {
              "type": "bytes",
              "id": 1,
              "options": {
                "(btype)": "BLOCK_ID"
              }
            },
            "height": {
              "type": "uint64",
              "id": 2,
              "options": {
                "jstype": "JS_STRING"
              }
            },
            "previous": {
              "type": "bytes",
              "id": 3,
              "options": {
                "(btype)": "BLOCK_ID"
              }
            }
          }
        },
        "protocol": {
          "options": {
            "go_package": "github.com/koinos/koinos-proto-golang/v2/koinos/protocol"
          },
          "nested": {
            "object_space": {
              "fields": {
                "system": {
                  "type": "bool",
                  "id": 1
                },
                "zone": {
                  "type": "bytes",
                  "id": 2
                },
                "id": {
                  "type": "uint32",
                  "id": 3
                }
              }
            },
            "event_data": {
              "fields": {
                "sequence": {
                  "type": "uint32",
                  "id": 1
                },
                "source": {
                  "type": "bytes",
                  "id": 2,
                  "options": {
                    "(btype)": "CONTRACT_ID"
                  }
                },
                "name": {
                  "type": "string",
                  "id": 3
                },
                "data": {
                  "type": "bytes",
                  "id": 4
                },
                "impacted": {
                  "rule": "repeated",
                  "type": "bytes",
                  "id": 5,
                  "options": {
                    "(btype)": "ADDRESS"
                  }
                }
              }
            },
            "contract_call_bundle": {
              "fields": {
                "contract_id": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "CONTRACT_ID"
                  }
                },
                "entry_point": {
                  "type": "uint32",
                  "id": 2
                }
              }
            },
            "system_call_target": {
              "oneofs": {
                "target": {
                  "oneof": ["thunk_id", "system_call_bundle"]
                }
              },
              "fields": {
                "thunk_id": {
                  "type": "uint32",
                  "id": 1
                },
                "system_call_bundle": {
                  "type": "contract_call_bundle",
                  "id": 2
                }
              }
            },
            "upload_contract_operation": {
              "fields": {
                "contract_id": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "CONTRACT_ID"
                  }
                },
                "bytecode": {
                  "type": "bytes",
                  "id": 2
                },
                "abi": {
                  "type": "string",
                  "id": 3
                },
                "authorizes_call_contract": {
                  "type": "bool",
                  "id": 4
                },
                "authorizes_transaction_application": {
                  "type": "bool",
                  "id": 5
                },
                "authorizes_upload_contract": {
                  "type": "bool",
                  "id": 6
                }
              }
            },
            "call_contract_operation": {
              "fields": {
                "contract_id": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "CONTRACT_ID"
                  }
                },
                "entry_point": {
                  "type": "uint32",
                  "id": 2
                },
                "args": {
                  "type": "bytes",
                  "id": 3
                }
              }
            },
            "set_system_call_operation": {
              "fields": {
                "call_id": {
                  "type": "uint32",
                  "id": 1
                },
                "target": {
                  "type": "system_call_target",
                  "id": 2
                }
              }
            },
            "set_system_contract_operation": {
              "fields": {
                "contract_id": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "CONTRACT_ID"
                  }
                },
                "system_contract": {
                  "type": "bool",
                  "id": 2
                }
              }
            },
            "operation": {
              "oneofs": {
                "op": {
                  "oneof": [
                    "upload_contract",
                    "call_contract",
                    "set_system_call",
                    "set_system_contract"
                  ]
                }
              },
              "fields": {
                "upload_contract": {
                  "type": "upload_contract_operation",
                  "id": 1
                },
                "call_contract": {
                  "type": "call_contract_operation",
                  "id": 2
                },
                "set_system_call": {
                  "type": "set_system_call_operation",
                  "id": 3
                },
                "set_system_contract": {
                  "type": "set_system_contract_operation",
                  "id": 4
                }
              }
            },
            "transaction_header": {
              "fields": {
                "chain_id": {
                  "type": "bytes",
                  "id": 1
                },
                "rc_limit": {
                  "type": "uint64",
                  "id": 2,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "nonce": {
                  "type": "bytes",
                  "id": 3
                },
                "operation_merkle_root": {
                  "type": "bytes",
                  "id": 4
                },
                "payer": {
                  "type": "bytes",
                  "id": 5,
                  "options": {
                    "(btype)": "ADDRESS"
                  }
                },
                "payee": {
                  "type": "bytes",
                  "id": 6,
                  "options": {
                    "(btype)": "ADDRESS"
                  }
                }
              }
            },
            "transaction": {
              "fields": {
                "id": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "TRANSACTION_ID"
                  }
                },
                "header": {
                  "type": "transaction_header",
                  "id": 2
                },
                "operations": {
                  "rule": "repeated",
                  "type": "operation",
                  "id": 3
                },
                "signatures": {
                  "rule": "repeated",
                  "type": "bytes",
                  "id": 4
                }
              }
            },
            "transaction_receipt": {
              "fields": {
                "id": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "TRANSACTION_ID"
                  }
                },
                "payer": {
                  "type": "bytes",
                  "id": 2,
                  "options": {
                    "(btype)": "ADDRESS"
                  }
                },
                "max_payer_rc": {
                  "type": "uint64",
                  "id": 3,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "rc_limit": {
                  "type": "uint64",
                  "id": 4,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "rc_used": {
                  "type": "uint64",
                  "id": 5,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "disk_storage_used": {
                  "type": "uint64",
                  "id": 6,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "network_bandwidth_used": {
                  "type": "uint64",
                  "id": 7,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "compute_bandwidth_used": {
                  "type": "uint64",
                  "id": 8,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "reverted": {
                  "type": "bool",
                  "id": 9
                },
                "events": {
                  "rule": "repeated",
                  "type": "event_data",
                  "id": 10
                },
                "logs": {
                  "rule": "repeated",
                  "type": "string",
                  "id": 11
                },
                "state_delta_entries": {
                  "rule": "repeated",
                  "type": "state_delta_entry",
                  "id": 12
                }
              }
            },
            "block_header": {
              "fields": {
                "previous": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "BLOCK_ID"
                  }
                },
                "height": {
                  "type": "uint64",
                  "id": 2,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "timestamp": {
                  "type": "uint64",
                  "id": 3,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "previous_state_merkle_root": {
                  "type": "bytes",
                  "id": 4
                },
                "transaction_merkle_root": {
                  "type": "bytes",
                  "id": 5
                },
                "signer": {
                  "type": "bytes",
                  "id": 6,
                  "options": {
                    "(btype)": "ADDRESS"
                  }
                },
                "approved_proposals": {
                  "rule": "repeated",
                  "type": "bytes",
                  "id": 7,
                  "options": {
                    "(btype)": "TRANSACTION_ID"
                  }
                }
              }
            },
            "block": {
              "fields": {
                "id": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "BLOCK_ID"
                  }
                },
                "header": {
                  "type": "block_header",
                  "id": 2
                },
                "transactions": {
                  "rule": "repeated",
                  "type": "transaction",
                  "id": 3
                },
                "signature": {
                  "type": "bytes",
                  "id": 4
                }
              }
            },
            "block_receipt": {
              "fields": {
                "id": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "BLOCK_ID"
                  }
                },
                "height": {
                  "type": "uint64",
                  "id": 2,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "disk_storage_used": {
                  "type": "uint64",
                  "id": 3,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "network_bandwidth_used": {
                  "type": "uint64",
                  "id": 4,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "compute_bandwidth_used": {
                  "type": "uint64",
                  "id": 5,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "state_merkle_root": {
                  "type": "bytes",
                  "id": 6
                },
                "events": {
                  "rule": "repeated",
                  "type": "event_data",
                  "id": 7
                },
                "transaction_receipts": {
                  "rule": "repeated",
                  "type": "transaction_receipt",
                  "id": 8
                },
                "logs": {
                  "rule": "repeated",
                  "type": "string",
                  "id": 9
                },
                "disk_storage_charged": {
                  "type": "uint64",
                  "id": 10,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "network_bandwidth_charged": {
                  "type": "uint64",
                  "id": 11,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "compute_bandwidth_charged": {
                  "type": "uint64",
                  "id": 12,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "state_delta_entries": {
                  "rule": "repeated",
                  "type": "state_delta_entry",
                  "id": 13
                }
              }
            },
            "state_delta_entry": {
              "oneofs": {
                "_value": {
                  "oneof": ["value"]
                }
              },
              "fields": {
                "object_space": {
                  "type": "object_space",
                  "id": 1
                },
                "key": {
                  "type": "bytes",
                  "id": 2
                },
                "value": {
                  "type": "bytes",
                  "id": 3,
                  "options": {
                    "proto3_optional": true
                  }
                }
              }
            }
          }
        },
        "chain": {
          "options": {
            "go_package": "github.com/koinos/koinos-proto-golang/v2/koinos/chain"
          },
          "nested": {
            "error_data": {
              "fields": {
                "message": {
                  "type": "string",
                  "id": 1
                }
              }
            },
            "result": {
              "oneofs": {
                "value": {
                  "oneof": ["object", "error"]
                }
              },
              "fields": {
                "object": {
                  "type": "bytes",
                  "id": 1
                },
                "error": {
                  "type": "error_data",
                  "id": 2
                }
              }
            },
            "object_space": {
              "fields": {
                "system": {
                  "type": "bool",
                  "id": 1
                },
                "zone": {
                  "type": "bytes",
                  "id": 2
                },
                "id": {
                  "type": "uint32",
                  "id": 3
                }
              }
            },
            "database_key": {
              "fields": {
                "space": {
                  "type": "object_space",
                  "id": 1
                },
                "key": {
                  "type": "bytes",
                  "id": 2
                }
              }
            },
            "max_account_resources": {
              "fields": {
                "value": {
                  "type": "uint64",
                  "id": 1,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                }
              }
            },
            "privilege": {
              "values": {
                "kernel_mode": 0,
                "user_mode": 1
              }
            },
            "head_info": {
              "fields": {
                "head_topology": {
                  "type": "block_topology",
                  "id": 1
                },
                "head_block_time": {
                  "type": "uint64",
                  "id": 2,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "last_irreversible_block": {
                  "type": "uint64",
                  "id": 3,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                }
              }
            },
            "caller_data": {
              "fields": {
                "caller": {
                  "type": "bytes",
                  "id": 1,
                  "options": {
                    "(btype)": "ADDRESS"
                  }
                },
                "caller_privilege": {
                  "type": "privilege",
                  "id": 2
                }
              }
            },
            "argument_data": {
              "fields": {
                "entry_point": {
                  "type": "uint32",
                  "id": 1
                },
                "arguments": {
                  "type": "bytes",
                  "id": 2
                }
              }
            },
            "resource_limit_data": {
              "fields": {
                "disk_storage_limit": {
                  "type": "uint64",
                  "id": 1,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "disk_storage_cost": {
                  "type": "uint64",
                  "id": 2,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "network_bandwidth_limit": {
                  "type": "uint64",
                  "id": 3,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "network_bandwidth_cost": {
                  "type": "uint64",
                  "id": 4,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "compute_bandwidth_limit": {
                  "type": "uint64",
                  "id": 5,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                },
                "compute_bandwidth_cost": {
                  "type": "uint64",
                  "id": 6,
                  "options": {
                    "jstype": "JS_STRING"
                  }
                }
              }
            },
            "contract_metadata_object": {
              "fields": {
                "hash": {
                  "type": "bytes",
                  "id": 1
                },
                "system": {
                  "type": "bool",
                  "id": 2
                },
                "authorizes_call_contract": {
                  "type": "bool",
                  "id": 3
                },
                "authorizes_transaction_application": {
                  "type": "bool",
                  "id": 4
                },
                "authorizes_upload_contract": {
                  "type": "bool",
                  "id": 5
                }
              }
            },
            "compute_bandwidth_entry": {
              "fields": {
                "name": {
                  "type": "string",
                  "id": 1
                },
                "compute": {
                  "type": "uint64",
                  "id": 2
                }
              }
            },
            "compute_bandwidth_registry": {
              "fields": {
                "entries": {
                  "rule": "repeated",
                  "type": "compute_bandwidth_entry",
                  "id": 1
                }
              }
            },
            "genesis_entry": {
              "fields": {
                "space": {
                  "type": "object_space",
                  "id": 1
                },
                "key": {
                  "type": "bytes",
                  "id": 2
                },
                "value": {
                  "type": "bytes",
                  "id": 3
                }
              }
            },
            "genesis_data": {
              "fields": {
                "entries": {
                  "rule": "repeated",
                  "type": "genesis_entry",
                  "id": 1
                }
              }
            },
            "dsa": {
              "values": {
                "ecdsa_secp256k1": 0
              }
            }
          }
        }
      }
    }
  }
}
