syntax = "proto3";

import "transaction.proto";

package types;
option go_package = "github.com/33cn/chain33/types";

message Genesis {
    bool isrun = 1;
}

message ExecTxList {
    bytes    stateHash       = 1;
    bytes    parentHash      = 7;
    bytes    mainHash        = 8;
    int64    mainHeight      = 9;
    int64    blockTime       = 3;
    int64    height          = 4;
    uint64   difficulty      = 5;
    bool     isMempool       = 6;
    repeated Transaction txs = 2;
}

message Query {
    bytes  execer   = 1;
    string funcName = 2;
    bytes  payload  = 3;
}

message CreateTxIn {
    bytes  execer     = 1;
    string actionName = 2;
    bytes  payload    = 3;
}

// 配置修改部分
message ArrayConfig {
    repeated string value = 3;
}
message StringConfig {
    string value = 3;
}
message Int32Config {
    int32 value = 3;
}

message ConfigItem {
    string key  = 1;
    string addr = 2;
    oneof  value {
        ArrayConfig  arr = 3;
        StringConfig str = 4;
        Int32Config int  = 5;
    }
    int32 Ty = 11;
}

message ModifyConfig {
    string key   = 1;
    string value = 2;
    string op    = 3;
    string addr  = 4;
}

message ReceiptConfig {
    ConfigItem prev    = 1;
    ConfigItem current = 2;
}

message ReplyConfig {
    string key   = 1;
    string value = 2;
}

message HistoryCertStore {
    repeated bytes rootcerts         = 1;
    repeated bytes intermediateCerts = 2;
    repeated bytes revocationList    = 3;
    int64          curHeigth         = 4;
    int64          nxtHeight         = 5;
}