{
  "options": {
    "csharp_namespace": "AElf.Kernel"
  },
  "nested": {
    "Transaction": {
      "fields": {
        "From": {
          "type": "Address",
          "id": 1
        },
        "To": {
          "type": "Address",
          "id": 2
        },
        "RefBlockNumber": {
          "type": "uint64",
          "id": 3
        },
        "RefBlockPrefix": {
          "type": "bytes",
          "id": 4
        },
        "IncrementId": {
          "type": "uint64",
          "id": 5
        },
        "MethodName": {
          "type": "string",
          "id": 6
        },
        "Params": {
          "type": "bytes",
          "id": 7
        },
        "Fee": {
          "type": "uint64",
          "id": 8
        },
        "Sigs": {
          "rule": "repeated",
          "type": "bytes",
          "id": 9
        },
        "Type": {
          "type": "TransactionType",
          "id": 10
        },
        "Time": {
          "type": "google.protobuf.Timestamp",
          "id": 11
        }
      }
    },
    "TransactionReceipt": {
      "fields": {
        "TransactionId": {
          "type": "Hash",
          "id": 1
        },
        "Transaction": {
          "type": "Transaction",
          "id": 2
        },
        "SignatureSt": {
          "type": "SignatureStatus",
          "id": 3
        },
        "RefBlockSt": {
          "type": "RefBlockStatus",
          "id": 4
        },
        "Status": {
          "type": "TransactionStatus",
          "id": 5
        },
        "IsSystemTxn": {
          "type": "bool",
          "id": 6
        },
        "ExecutedBlockNumber": {
          "type": "uint64",
          "id": 7
        }
      },
      "nested": {
        "TransactionStatus": {
          "values": {
            "UnknownTransactionStatus": 0,
            "TransactionExecuting": 1,
            "TransactionExecuted": 2
          }
        },
        "SignatureStatus": {
          "values": {
            "UnknownSignatureStatus": 0,
            "SignatureValid": 1,
            "SignatureInvalid": -1
          }
        },
        "RefBlockStatus": {
          "values": {
            "UnknownRefBlockStatus": 0,
            "RefBlockValid": 1,
            "RefBlockInvalid": -1,
            "RefBlockExpired": -2,
            "FutureRefBlock": -3
          }
        }
      }
    },
    "StatePath": {
      "fields": {
        "Path": {
          "rule": "repeated",
          "type": "bytes",
          "id": 1
        }
      }
    },
    "StateValue": {
      "fields": {
        "CurrentValue": {
          "type": "bytes",
          "id": 1
        },
        "OriginalValue": {
          "type": "bytes",
          "id": 2
        }
      }
    },
    "StateChange": {
      "fields": {
        "StatePath": {
          "type": "StatePath",
          "id": 1
        },
        "StateValue": {
          "type": "StateValue",
          "id": 2
        }
      }
    },
    "TransactionList": {
      "fields": {
        "Transactions": {
          "rule": "repeated",
          "type": "Transaction",
          "id": 1
        }
      }
    },
    "TransactionType": {
      "values": {
        "ContractTransaction": 0,
        "DposTransaction": 1,
        "MsigTransaction": 2,
        "ContractDeployTransaction": 3
      }
    },
    "Status": {
      "values": {
        "NotExisted": 0,
        "Pending": 1,
        "Failed": 2,
        "Mined": 3
      }
    },
    "TransactionResult": {
      "fields": {
        "TransactionId": {
          "type": "Hash",
          "id": 1
        },
        "Status": {
          "type": "Status",
          "id": 2
        },
        "Logs": {
          "rule": "repeated",
          "type": "LogEvent",
          "id": 3
        },
        "Bloom": {
          "type": "bytes",
          "id": 4
        },
        "RetVal": {
          "type": "bytes",
          "id": 5
        },
        "BlockNumber": {
          "type": "uint64",
          "id": 6
        },
        "BlockHash": {
          "type": "Hash",
          "id": 7
        },
        "Index": {
          "type": "int32",
          "id": 8
        },
        "StateHash": {
          "type": "Hash",
          "id": 9
        },
        "DeferredTxnId": {
          "type": "Hash",
          "id": 10
        }
      }
    },
    "ExecutionStatus": {
      "values": {
        "Undefined": 0,
        "ExecutedButNotCommitted": 1,
        "ExecutedAndCommitted": 2,
        "Canceled": -1,
        "SystemError": -2,
        "ContractError": -10,
        "ExceededMaxCallDepth": -11
      }
    },
    "TransactionTrace": {
      "fields": {
        "TransactionId": {
          "type": "Hash",
          "id": 1
        },
        "RetVal": {
          "type": "RetVal",
          "id": 2
        },
        "StdOut": {
          "type": "string",
          "id": 3
        },
        "StdErr": {
          "type": "string",
          "id": 4
        },
        "StateHash": {
          "type": "Hash",
          "id": 5
        },
        "Logs": {
          "rule": "repeated",
          "type": "LogEvent",
          "id": 6
        },
        "InlineTransactions": {
          "rule": "repeated",
          "type": "Transaction",
          "id": 7
        },
        "InlineTraces": {
          "rule": "repeated",
          "type": "TransactionTrace",
          "id": 8
        },
        "StateChanges": {
          "rule": "repeated",
          "type": "StateChange",
          "id": 9
        },
        "Elapsed": {
          "type": "int64",
          "id": 10
        },
        "ExecutionStatus": {
          "type": "ExecutionStatus",
          "id": 11
        },
        "DeferredTransaction": {
          "type": "bytes",
          "id": 12
        }
      }
    },
    "LogEvent": {
      "fields": {
        "Address": {
          "type": "Address",
          "id": 1
        },
        "Topics": {
          "rule": "repeated",
          "type": "bytes",
          "id": 2
        },
        "Data": {
          "type": "bytes",
          "id": 3
        }
      }
    },
    "RetVal": {
      "fields": {
        "Type": {
          "type": "RetType",
          "id": 1
        },
        "Data": {
          "type": "bytes",
          "id": 2
        }
      },
      "nested": {
        "RetType": {
          "values": {
            "Void": 0,
            "Bool": 1,
            "Int32": 2,
            "UInt32": 3,
            "Int64": 4,
            "UInt64": 5,
            "String": 6,
            "Bytes": 7,
            "PbMessage": 8,
            "UserType": 9
          }
        }
      }
    },
    "BlockHeaderList": {
      "fields": {
        "Headers": {
          "rule": "repeated",
          "type": "BlockHeader",
          "id": 1
        }
      }
    },
    "BlockHeader": {
      "fields": {
        "Version": {
          "type": "int32",
          "id": 1
        },
        "PreviousBlockHash": {
          "type": "Hash",
          "id": 2
        },
        "MerkleTreeRootOfTransactions": {
          "type": "Hash",
          "id": 3
        },
        "MerkleTreeRootOfWorldState": {
          "type": "Hash",
          "id": 4
        },
        "Bloom": {
          "type": "bytes",
          "id": 5
        },
        "Index": {
          "type": "uint64",
          "id": 6
        },
        "Sig": {
          "type": "bytes",
          "id": 7
        },
        "P": {
          "type": "bytes",
          "id": 8
        },
        "Time": {
          "type": "google.protobuf.Timestamp",
          "id": 9
        },
        "ChainId": {
          "type": "Hash",
          "id": 10
        },
        "SideChainTransactionsRoot": {
          "type": "Hash",
          "id": 11
        }
      }
    },
    "BlockBody": {
      "fields": {
        "BlockHeader": {
          "type": "Hash",
          "id": 1
        },
        "Transactions": {
          "rule": "repeated",
          "type": "Hash",
          "id": 2
        },
        "TransactionList": {
          "rule": "repeated",
          "type": "Transaction",
          "id": 3
        },
        "IndexedInfo": {
          "rule": "repeated",
          "type": "SideChainBlockInfo",
          "id": 4
        }
      }
    },
    "Block": {
      "fields": {
        "Header": {
          "type": "BlockHeader",
          "id": 1
        },
        "Body": {
          "type": "BlockBody",
          "id": 2
        }
      }
    },
    "SmartContractRegistration": {
      "fields": {
        "Category": {
          "type": "int32",
          "id": 1
        },
        "ContractHash": {
          "type": "Hash",
          "id": 2
        },
        "ContractBytes": {
          "type": "bytes",
          "id": 3
        },
        "SerialNumber": {
          "type": "uint64",
          "id": 4
        }
      }
    },
    "SmartContractDeployment": {
      "fields": {
        "ContractHash": {
          "type": "Hash",
          "id": 1
        },
        "Caller": {
          "type": "Hash",
          "id": 2
        },
        "ConstructParams": {
          "type": "bytes",
          "id": 3
        },
        "IncrementId": {
          "type": "uint64",
          "id": 4
        }
      }
    },
    "Parameters": {
      "fields": {
        "Params": {
          "rule": "repeated",
          "type": "Param",
          "id": 1
        }
      }
    },
    "Param": {
      "oneofs": {
        "data": {
          "oneof": [
            "intVal",
            "uintVal",
            "longVal",
            "ulongVal",
            "boolVal",
            "bytesVal",
            "strVal",
            "dVal",
            "hashVal",
            "registerVal",
            "deploymentVal"
          ]
        }
      },
      "fields": {
        "intVal": {
          "type": "int32",
          "id": 1
        },
        "uintVal": {
          "type": "uint32",
          "id": 2
        },
        "longVal": {
          "type": "int64",
          "id": 3
        },
        "ulongVal": {
          "type": "uint64",
          "id": 4
        },
        "boolVal": {
          "type": "bool",
          "id": 5
        },
        "bytesVal": {
          "type": "bytes",
          "id": 6
        },
        "strVal": {
          "type": "string",
          "id": 7
        },
        "dVal": {
          "type": "double",
          "id": 8
        },
        "hashVal": {
          "type": "Hash",
          "id": 9
        },
        "registerVal": {
          "type": "SmartContractRegistration",
          "id": 10
        },
        "deploymentVal": {
          "type": "SmartContractDeployment",
          "id": 11
        }
      }
    },
    "SmartContractInvokeContext": {
      "fields": {
        "Caller": {
          "type": "Hash",
          "id": 1
        },
        "IncrementId": {
          "type": "uint64",
          "id": 2
        },
        "MethodName": {
          "type": "string",
          "id": 3
        },
        "Params": {
          "type": "bytes",
          "id": 4
        }
      }
    },
    "DataItem": {
      "fields": {
        "ResourcePath": {
          "type": "Hash",
          "id": 1
        },
        "ResourcePointer": {
          "type": "Hash",
          "id": 2
        },
        "StateMerkleTreeLeaf": {
          "type": "Hash",
          "id": 3
        }
      }
    },
    "WorldState": {
      "fields": {
        "Data": {
          "rule": "repeated",
          "type": "DataItem",
          "id": 1
        }
      }
    },
    "Chain": {
      "fields": {
        "Id": {
          "type": "Hash",
          "id": 1
        },
        "GenesisBlockHash": {
          "type": "Hash",
          "id": 2
        }
      }
    },
    "DataAccessMode": {
      "values": {
        "ReadOnlyAccountSharing": 0,
        "ReadWriteAccountSharing": 1,
        "AccountSpecific": 2
      }
    },
    "Key": {
      "fields": {
        "Value": {
          "type": "bytes",
          "id": 1
        },
        "type": {
          "type": "string",
          "id": 2
        },
        "HashType": {
          "type": "uint32",
          "id": 3
        }
      }
    },
    "DataPath": {
      "fields": {
        "ChainId": {
          "type": "Hash",
          "id": 1
        },
        "BlockHeight": {
          "type": "uint64",
          "id": 2
        },
        "BlockProducerAddress": {
          "type": "Address",
          "id": 3
        },
        "ContractAddress": {
          "type": "Address",
          "id": 4
        },
        "DataProviderHash": {
          "type": "Hash",
          "id": 5
        },
        "KeyHash": {
          "type": "Hash",
          "id": 6
        },
        "StatePath": {
          "type": "StatePath",
          "id": 7
        }
      }
    },
    "BinaryMerkleTree": {
      "fields": {
        "Nodes": {
          "rule": "repeated",
          "type": "Hash",
          "id": 1
        },
        "Root": {
          "type": "Hash",
          "id": 2
        },
        "LeafCount": {
          "type": "int32",
          "id": 3
        }
      }
    },
    "StringList": {
      "fields": {
        "Values": {
          "rule": "repeated",
          "type": "string",
          "id": 1
        }
      }
    },
    "google": {
      "nested": {
        "protobuf": {
          "nested": {
            "Timestamp": {
              "fields": {
                "seconds": {
                  "type": "int64",
                  "id": 1
                },
                "nanos": {
                  "type": "int32",
                  "id": 2
                }
              }
            }
          }
        }
      }
    },
    "Address": {
      "fields": {
        "Value": {
          "type": "bytes",
          "id": 1
        }
      }
    },
    "Hash": {
      "fields": {
        "Value": {
          "type": "bytes",
          "id": 1
        },
        "HashType": {
          "type": "HashType",
          "id": 2
        }
      }
    },
    "HashType": {
      "values": {
        "General": 0,
        "AccountAddress": 1,
        "ResourcePath": 2,
        "ResourcePointer": 3,
        "StateHash": 4,
        "BlockHash": 5,
        "AccountZero": 6,
        "ChainHeight": 7,
        "PreviousBlockHash": 8,
        "CallingGraph": 9,
        "TxResult": 10,
        "CanonicalHash": 11,
        "CurrentHash": 12,
        "GenesisHash": 13,
        "BlockHeaderHash": 14,
        "BlockBodyHash": 15
      }
    },
    "SInt32Value": {
      "fields": {
        "value": {
          "type": "sint32",
          "id": 1
        }
      }
    },
    "SInt64Value": {
      "fields": {
        "value": {
          "type": "sint64",
          "id": 1
        }
      }
    },
    "SideChainBlockInfo": {
      "fields": {
        "Height": {
          "type": "uint64",
          "id": 1
        },
        "BlockHeaderHash": {
          "type": "Hash",
          "id": 2
        },
        "TransactionMKRoot": {
          "type": "Hash",
          "id": 3
        },
        "ChainId": {
          "type": "Hash",
          "id": 4
        }
      }
    },
    "ParentChainBlockInfo": {
      "fields": {
        "Root": {
          "type": "ParentChainBlockRootInfo",
          "id": 1
        },
        "IndexedBlockInfo": {
          "keyType": "uint64",
          "type": "MerklePath",
          "id": 2
        }
      }
    },
    "ParentChainBlockRootInfo": {
      "fields": {
        "Height": {
          "type": "uint64",
          "id": 1
        },
        "SideChainBlockHeadersRoot": {
          "type": "Hash",
          "id": 2
        },
        "SideChainTransactionsRoot": {
          "type": "Hash",
          "id": 3
        },
        "ChainId": {
          "type": "Hash",
          "id": 4
        }
      }
    },
    "MerklePath": {
      "fields": {
        "Path": {
          "rule": "repeated",
          "type": "Hash",
          "id": 1
        }
      }
    },
    "SideChainStatus": {
      "values": {
        "Apply": 0,
        "Review": 1,
        "Active": 2,
        "Terminated": 3
      }
    },
    "SideChainInfo": {
      "fields": {
        "IndexingPrice": {
          "type": "uint64",
          "id": 1
        },
        "LockedTokenAmount": {
          "type": "uint64",
          "id": 2
        },
        "ResourceBalances": {
          "rule": "repeated",
          "type": "ResourceTypeBalancePair",
          "id": 3
        },
        "ContractCode": {
          "type": "bytes",
          "id": 4
        },
        "Proposer": {
          "type": "Address",
          "id": 5
        },
        "SideChainStatus": {
          "type": "SideChainStatus",
          "id": 6
        },
        "ChainId": {
          "type": "Hash",
          "id": 7
        }
      }
    },
    "ResourceType": {
      "values": {
        "UndefinedResourceType": 0,
        "Ram": 1,
        "Cpu": 2,
        "Net": 3
      }
    },
    "ResourceTypeBalancePair": {
      "fields": {
        "Type": {
          "type": "ResourceType",
          "id": 1
        },
        "Amount": {
          "type": "uint64",
          "id": 2
        }
      }
    }
  }
}