Skip to content

Instantly share code, notes, and snippets.

@moea
Last active November 13, 2018 14:12
Show Gist options
  • Save moea/3e2e09194e174811bc06dfa4cc4ff970 to your computer and use it in GitHub Desktop.
Save moea/3e2e09194e174811bc06dfa4cc4ff970 to your computer and use it in GitHub Desktop.
(ns stickler.core
(:require [clojure.java.io :as io]
[camel-snake-kebab.core :refer [->kebab-case]])
(:import [com.squareup.wire.schema Schema SchemaLoader ProtoType])
(:gen-class))
(def ^:dynamic package-renames {})
(def ^:dynamic ->field-name ->kebab-case)
(def ^:dynamic ->type-name ->kebab-case)
(def ^:private scalar-proto-type->key
{ProtoType/BOOL :boolean
ProtoType/BYTES :bytes
ProtoType/DOUBLE :double
ProtoType/FLOAT :float
ProtoType/FIXED32 :fixed32
ProtoType/FIXED64 :fixed64
ProtoType/INT32 :int32
ProtoType/INT64 :int64
ProtoType/SFIXED32 :sfixed32
ProtoType/SFIXED64 :sfixed64
ProtoType/SINT32 :sint32
ProtoType/SINT64 :sint64
ProtoType/STRING :string
ProtoType/UINT32 :uint32
ProtoType/UINT64 :uint64})
(defn- proto->package-name [proto]
(or (.javaPackage proto) (.packageName proto)))
(defn- type->simple-name [t]
(-> t .type .simpleName))
(defn- proto+type->key [proto t]
(let [package (proto->package-name proto)]
(keyword package (->type-name (type->simple-name t)))))
(defn- convert-field [proto f]
(let [t (.type f)
m (cond-> {:tag (.tag f)
:name (->field-name (keyword (.name f)))}
(.isDeprecated f) (assoc :depecated? true)
(.isRepeated f) (assoc :repeated? true)
(.isRedacted f) (assoc :redacted? true)
(.isPacked f) (assoc :packed? true)
(.isRequired f) (assoc :required? true)
(.isOptional f) (assoc :optional? true)
(.getDefault f) (assoc :default (.getDefault f)))]
(cond
(.isScalar t) (assoc m :scalar? true :type (scalar-proto-type->key t))
(.isMap t) (assoc m :map? true :type [(.keyType t) (.valueType t)])
:else (assoc m :type (proto+type->key proto f)))))
(defn- convert-one-of [proto one-of]
{(->field-name (keyword (.name one-of))) (mapv (partial convert-field proto) (.fields one-of))})
(defn- convert-fields [proto fields one-ofs]
(let [fields (mapv (partial convert-field proto) fields)
one-ofs (map (partial convert-one-of proto) one-ofs)]
(cond-> {}
(not-empty fields) (assoc :fields fields)
(not-empty one-ofs) (assoc :one-ofs (apply merge one-ofs)))))
(defn- convert-type [proto t-name t]
(let [fields (convert-fields proto (.fields t) (.oneOfs t))]
{t-name (assoc fields
:package (proto->package-name proto)
:name (type->simple-name t))}))
(defn- convert-proto-file [f]
(reduce
(fn [acc t]
(let [t-name (proto+type->key f t)]
(into acc (convert-type f t-name t))))
{}
(.types f)))
(let [loader (doto (SchemaLoader.)
(.addSource (io/file "/tmp/proto")))
schema (.load loader)
maps (mapv convert-proto-file (.protoFiles schema))]
(clojure.pprint/pprint (apply merge maps)))
{:com.google.protobuf/method-descriptor-proto
{:fields
[{:tag 1, :name :name, :optional? true, :scalar? true, :type :string}
{:tag 2,
:name :input-type,
:optional? true,
:scalar? true,
:type :string}
{:tag 3,
:name :output-type,
:optional? true,
:scalar? true,
:type :string}
{:tag 4,
:name :options,
:optional? true,
:type :com.google.protobuf/method-options}
{:tag 5,
:name :client-streaming,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 6,
:name :server-streaming,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}],
:package "com.google.protobuf",
:name "MethodDescriptorProto"},
:com.google.protobuf/enum-value-descriptor-proto
{:fields
[{:tag 1, :name :name, :optional? true, :scalar? true, :type :string}
{:tag 2,
:name :number,
:optional? true,
:scalar? true,
:type :int32}
{:tag 3,
:name :options,
:optional? true,
:type :com.google.protobuf/enum-value-options
}],
:package "com.google.protobuf",
:name "EnumValueDescriptorProto"},
:com.google.protobuf/service-options
{:fields
[{:tag 33,
:name :deprecated,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 999,
:name :uninterpreted-option,
:repeated? true,
:type :com.google.protobuf/uninterpreted-option}],
:package "com.google.protobuf",
:name "ServiceOptions"},
:com.github.jtendermint.jabci.types/request-begin-block
{:fields
[{:tag 1, :name :hash, :scalar? true, :type :bytes}
{:tag 2,
:name :header,
:type :com.github.jtendermint.jabci.types/header}
{:tag 3,
:name :last-commit-info,
:type :com.github.jtendermint.jabci.types/last-commit-info}
{:tag 4,
:name :byzantine-validators,
:repeated? true,
:type :com.github.jtendermint.jabci.types/evidence}],
:package "com.github.jtendermint.jabci.types",
:name "RequestBeginBlock"},
:com.github.jtendermint.jabci.types/response-flush
{:package "com.github.jtendermin
t.jabci.types",
:name "ResponseFlush"},
:com.github.jtendermint.jabci.types/response-query
{:fields
[{:tag 1, :name :code, :scalar? true, :type :uint32}
{:tag 3, :name :log, :scalar? true, :type :string}
{:tag 4, :name :info, :scalar? true, :type :string}
{:tag 5, :name :index, :scalar? true, :type :int64}
{:tag 6, :name :key, :scalar? true, :type :bytes}
{:tag 7, :name :value, :scalar? true, :type :bytes}
{:tag 8,
:name :proof,
:type :com.github.jtendermint.jabci.types/proof}
{:tag 9, :name :height, :scalar? true, :type :int64}
{:tag 10, :name :codespace, :scalar? true, :type :string}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseQuery"},
:com.google.protobuf/method-options
{:fields
[{:tag 33,
:name :deprecated,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 999,
:name :uninterpreted-option,
:repeated? true,
:type :com.google.protobuf/uninterpreted-option}],
:package "com.google.proto
buf",
:name "MethodOptions"},
:com.github.jtendermint.jabci.types/response-deliver-tx
{:fields
[{:tag 1, :name :code, :scalar? true, :type :uint32}
{:tag 2, :name :data, :scalar? true, :type :bytes}
{:tag 3, :name :log, :scalar? true, :type :string}
{:tag 4, :name :info, :scalar? true, :type :string}
{:tag 5, :name :gas-wanted, :scalar? true, :type :int64}
{:tag 6, :name :gas-used, :scalar? true, :type :int64}
{:tag 7,
:name :tags,
:repeated? true,
:type :com.github.jtendermint.jabci.types/kv-pair}
{:tag 8, :name :codespace, :scalar? true, :type :string}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseDeliverTx"},
:com.google.protobuf/file-options
{:fields
[{:tag 1,
:name :java-package,
:optional? true,
:scalar? true,
:type :string}
{:tag 8,
:name :java-outer-classname,
:optional? true,
:scalar? true,
:type :string}
{:tag 10,
:name :java-multiple-files,
:optional? true,
:default "false",
:scalar?
true,
:type :boolean}
{:tag 20,
:name :java-generate-equals-and-hash,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 27,
:name :java-string-check-utf-8,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 9,
:name :optimize-for,
:optional? true,
:default "SPEED",
:type :com.google.protobuf/optimize-mode}
{:tag 11,
:name :go-package,
:optional? true,
:scalar? true,
:type :string}
{:tag 16,
:name :cc-generic-services,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 17,
:name :java-generic-services,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 18,
:name :py-generic-services,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 23,
:name :deprecated,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag
31,
:name :cc-enable-arenas,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 36,
:name :objc-class-prefix,
:optional? true,
:scalar? true,
:type :string}
{:tag 37,
:name :csharp-namespace,
:optional? true,
:scalar? true,
:type :string}
{:tag 999,
:name :uninterpreted-option,
:repeated? true,
:type :com.google.protobuf/uninterpreted-option}],
:package "com.google.protobuf",
:name "FileOptions"},
:com.github.jtendermint.jabci.types/request-commit
{:package "com.github.jtendermint.jabci.types",
:name "RequestCommit"},
:com.github.jtendermint.jabci.types/pub-key
{:fields
[{:tag 1, :name :type, :scalar? true, :type :string}
{:tag 2, :name :data, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "PubKey"},
:com.google.protobuf/file-descriptor-proto
{:fields
[{:tag 1, :name :name, :optional? true, :scalar? true, :type :string}
{:tag 2,
:name :package,
:optional?
true,
:scalar? true,
:type :string}
{:tag 3,
:name :dependency,
:repeated? true,
:scalar? true,
:type :string}
{:tag 10,
:name :public-dependency,
:repeated? true,
:scalar? true,
:type :int32}
{:tag 11,
:name :weak-dependency,
:repeated? true,
:scalar? true,
:type :int32}
{:tag 4,
:name :message-type,
:repeated? true,
:type :com.google.protobuf/descriptor-proto}
{:tag 5,
:name :enum-type,
:repeated? true,
:type :com.google.protobuf/enum-descriptor-proto}
{:tag 6,
:name :service,
:repeated? true,
:type :com.google.protobuf/service-descriptor-proto}
{:tag 7,
:name :extension,
:repeated? true,
:type :com.google.protobuf/field-descriptor-proto}
{:tag 8,
:name :options,
:optional? true,
:type :com.google.protobuf/file-options}
{:tag 9,
:name :source-code-info,
:optional? true,
:type :com.google.protobuf/source-code-info}
{:tag 12,
:name :syntax,
:optional?
true,
:scalar? true,
:type :string}],
:package "com.google.protobuf",
:name "FileDescriptorProto"},
:com.github.jtendermint.jabci.types/response-exception
{:fields [{:tag 1, :name :error, :scalar? true, :type :string}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseException"},
:com.github.jtendermint.jabci.types/request-query
{:fields
[{:tag 1, :name :data, :scalar? true, :type :bytes}
{:tag 2, :name :path, :scalar? true, :type :string}
{:tag 3, :name :height, :scalar? true, :type :int64}
{:tag 4, :name :prove, :scalar? true, :type :boolean}],
:package "com.github.jtendermint.jabci.types",
:name "RequestQuery"},
:com.github.jtendermint.jabci.types/version
{:fields
[{:tag 1, :name :block, :scalar? true, :type :uint64}
{:tag 2, :name :app, :scalar? true, :type :uint64}],
:package "com.github.jtendermint.jabci.types",
:name "Version"},
:com.google.protobuf/enum-descriptor-proto
{:fields
[{:tag 1, :name :name, :optional? true, :scalar? true, :type
:string}
{:tag 2,
:name :value,
:repeated? true,
:type :com.google.protobuf/enum-value-descriptor-proto}
{:tag 3,
:name :options,
:optional? true,
:type :com.google.protobuf/enum-options}],
:package "com.google.protobuf",
:name "EnumDescriptorProto"},
:com.github.jtendermint.jabci.types/request-check-tx
{:fields [{:tag 1, :name :tx, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "RequestCheckTx"},
:com.github.jtendermint.jabci.types/request-init-chain
{:fields
[{:tag 1,
:name :time,
:type :com.github.jtendermint.jabci.types/timestamp}
{:tag 2, :name :chain-id, :scalar? true, :type :string}
{:tag 3,
:name :consensus-params,
:type :com.github.jtendermint.jabci.types/consensus-params}
{:tag 4,
:name :validators,
:repeated? true,
:type :com.github.jtendermint.jabci.types/validator-update}
{:tag 5, :name :app-state-bytes, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.t
ypes",
:name "RequestInitChain"},
:com.google.protobuf/enum-value-options
{:fields
[{:tag 1,
:name :deprecated,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 999,
:name :uninterpreted-option,
:repeated? true,
:type :com.google.protobuf/uninterpreted-option}],
:package "com.google.protobuf",
:name "EnumValueOptions"},
:com.github.jtendermint.jabci.types/response-info
{:fields
[{:tag 1, :name :data, :scalar? true, :type :string}
{:tag 2, :name :version, :scalar? true, :type :string}
{:tag 3, :name :app-version, :scalar? true, :type :uint64}
{:tag 4, :name :last-block-height, :scalar? true, :type :int64}
{:tag 5, :name :last-block-app-hash, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseInfo"},
:com.github.jtendermint.jabci.types/last-commit-info
{:fields
[{:tag 1, :name :round, :scalar? true, :type :int32}
{:tag 2,
:name :votes,
:repeated? true,
:type :com.github.jtendermint.jabci.types/vote-info
}],
:package "com.github.jtendermint.jabci.types",
:name "LastCommitInfo"},
:com.github.jtendermint.jabci.types/evidence-params
{:fields [{:tag 1, :name :max-age, :scalar? true, :type :int64}],
:package "com.github.jtendermint.jabci.types",
:name "EvidenceParams"},
:com.google.protobuf/source-code-info
{:fields
[{:tag 1,
:name :location,
:repeated? true,
:type :com.google.protobuf/location}],
:package "com.google.protobuf",
:name "SourceCodeInfo"},
:com.google.protobuf/file-descriptor-set
{:fields
[{:tag 1,
:name :file,
:repeated? true,
:type :com.google.protobuf/file-descriptor-proto}],
:package "com.google.protobuf",
:name "FileDescriptorSet"},
:com.github.jtendermint.jabci.types/response
{:one-ofs
{:value
[{:tag 1,
:name :exception,
:type :com.github.jtendermint.jabci.types/response-exception}
{:tag 2,
:name :echo,
:type :com.github.jtendermint.jabci.types/response-echo}
{:tag 3,
:name :flush,
:type :com.github.jtendermint.jabci.types/response-flush
}
{:tag 4,
:name :info,
:type :com.github.jtendermint.jabci.types/response-info}
{:tag 5,
:name :set-option,
:type :com.github.jtendermint.jabci.types/response-set-option}
{:tag 6,
:name :init-chain,
:type :com.github.jtendermint.jabci.types/response-init-chain}
{:tag 7,
:name :query,
:type :com.github.jtendermint.jabci.types/response-query}
{:tag 8,
:name :begin-block,
:type :com.github.jtendermint.jabci.types/response-begin-block}
{:tag 9,
:name :check-tx,
:type :com.github.jtendermint.jabci.types/response-check-tx}
{:tag 10,
:name :deliver-tx,
:type :com.github.jtendermint.jabci.types/response-deliver-tx}
{:tag 11,
:name :end-block,
:type :com.github.jtendermint.jabci.types/response-end-block}
{:tag 12,
:name :commit,
:type :com.github.jtendermint.jabci.types/response-commit}]},
:package "com.github.jtendermint.jabci.types",
:name "Response"},
:com.github.jtendermint.jabci.types/consensus-params
{:fields
[{:tag 1,
:name :block-size,
:type :com.github.jtendermint.jabci.types/block-size-params}
{:tag 2,
:name :evidence,
:type :com.github.jtendermint.jabci.types/evidence-params}
{:tag 3,
:name :validator,
:type :com.github.jtendermint.jabci.types/validator-params}],
:package "com.github.jtendermint.jabci.types",
:name "ConsensusParams"},
:com.google.protobuf/oneof-descriptor-proto
{:fields
[{:tag 1,
:name :name,
:optional? true,
:scalar? true,
:type :string}],
:package "com.google.protobuf",
:name "OneofDescriptorProto"},
:com.google.protobuf/timestamp
{:fields
[{:tag 1, :name :seconds, :scalar? true, :type :int64}
{:tag 2, :name :nanos, :scalar? true, :type :int32}],
:package "com.google.protobuf",
:name "Timestamp"},
:com.github.jtendermint.jabci.types/block-size-params
{:fields
[{:tag 1, :name :max-bytes, :scalar? true, :type :int64}
{:tag 2, :name :max-gas, :scalar? true, :type :int64}],
:package "com.github.jtendermin
t.jabci.types",
:name "BlockSizeParams"},
:com.google.protobuf/message-options
{:fields
[{:tag 1,
:name :message-set-wire-format,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 2,
:name :no-standard-descriptor-accessor,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 3,
:name :deprecated,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 7,
:name :map-entry,
:optional? true,
:scalar? true,
:type :boolean}
{:tag 999,
:name :uninterpreted-option,
:repeated? true,
:type :com.google.protobuf/uninterpreted-option}],
:package "com.google.protobuf",
:name "MessageOptions"},
:com.github.jtendermint.jabci.types/request
{:one-ofs
{:value
[{:tag 2,
:name :echo,
:type :com.github.jtendermint.jabci.types/request-echo}
{:tag 3,
:name :flush,
:type :com.github.jtendermint.jabci.types/request-flush}
{:tag 4,
:name :info,
:type :com.github.jtendermint.jabci.types/request-info}
{:tag 5,
:name :set-option,
:type :com.github.jtendermint.jabci.types/request-set-option}
{:tag 6,
:name :init-chain,
:type :com.github.jtendermint.jabci.types/request-init-chain}
{:tag 7,
:name :query,
:type :com.github.jtendermint.jabci.types/request-query}
{:tag 8,
:name :begin-block,
:type :com.github.jtendermint.jabci.types/request-begin-block}
{:tag 9,
:name :check-tx,
:type :com.github.jtendermint.jabci.types/request-check-tx}
{:tag 19,
:name :deliver-tx,
:type :com.github.jtendermint.jabci.types/request-deliver-tx}
{:tag 11,
:name :end-block,
:type :com.github.jtendermint.jabci.types/request-end-block}
{:tag 12,
:name :commit,
:type :com.github.jtendermint.jabci.types/request-commit}]},
:package "com.github.jtendermint.jabci.types",
:name "Request"},
:com.github.jtendermint.jabci.types/validator-params
{:fields
[{:tag 1,
:name :pub-key-types,
:repeated? true,
:scalar? true,
:type :string}],
:package "com.github.jtendermint.jabci.types",
:name "ValidatorParams"},
:com.google.protobuf/enum-options
{:fields
[{:tag 2,
:name :allow-alias,
:optional? true,
:scalar? true,
:type :boolean}
{:tag 3,
:name :deprecated,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 999,
:name :uninterpreted-option,
:repeated? true,
:type :com.google.protobuf/uninterpreted-option}],
:package "com.google.protobuf",
:name "EnumOptions"},
:com.github.jtendermint.jabci.types/validator
{:fields
[{:tag 1, :name :address, :scalar? true, :type :bytes}
{:tag 3, :name :power, :scalar? true, :type :int64}],
:package "com.github.jtendermint.jabci.types",
:name "Validator"},
:com.github.jtendermint.jabci.types/response-end-block
{:fields
[{:tag 1,
:name :validator-updates,
:repeated? true,
:type :com.github.jtendermint.jabci.types/validator-update
}
{:tag 2,
:name :consensus-param-updates,
:type :com.github.jtendermint.jabci.types/consensus-params}
{:tag 3,
:name :tags,
:repeated? true,
:type :com.github.jtendermint.jabci.types/kv-pair}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseEndBlock"},
:com.github.jtendermint.jabci.types/response-echo
{:fields [{:tag 1, :name :message, :scalar? true, :type :string}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseEcho"},
:com.github.jtendermint.jabci.types/part-set-header
{:fields
[{:tag 1, :name :total, :scalar? true, :type :int32}
{:tag 2, :name :hash, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "PartSetHeader"},
:com.google.protobuf/field-options
{:fields
[{:tag 1,
:name :ctype,
:optional? true,
:default "STRING",
:type :com.google.protobuf/c-type}
{:tag 2,
:name :packed,
:optional? true,
:scalar? true,
:type :boolean}
{:tag 6,
:name :jstype,
:optional? true,
:default "JS_NORMAL",
:type :com.google.protobuf/js-type}
{:tag 5,
:name :lazy,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 3,
:name :deprecated,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 10,
:name :weak,
:optional? true,
:default "false",
:scalar? true,
:type :boolean}
{:tag 999,
:name :uninterpreted-option,
:repeated? true,
:type :com.google.protobuf/uninterpreted-option}],
:package "com.google.protobuf",
:name "FieldOptions"},
:com.github.jtendermint.jabci.types/validator-update
{:fields
[{:tag 1,
:name :pub-key,
:type :com.github.jtendermint.jabci.types/pub-key}
{:tag 2, :name :power, :scalar? true, :type :int64}],
:package "com.github.jtendermint.jabci.types",
:name "ValidatorUpdate"},
:com.github.jtendermint.jabci.types/request-echo
{:fields [{:tag 1, :name :message, :scalar? true, :type :string}],
:package "com.
github.jtendermint.jabci.types",
:name "RequestEcho"},
:com.github.jtendermint.jabci.types/proof-op
{:fields
[{:tag 1, :name :type, :scalar? true, :type :string}
{:tag 2, :name :key, :scalar? true, :type :bytes}
{:tag 3, :name :data, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "ProofOp"},
:com.google.protobuf/uninterpreted-option
{:fields
[{:tag 2,
:name :name,
:repeated? true,
:type :com.google.protobuf/name-part}
{:tag 3,
:name :identifier-value,
:optional? true,
:scalar? true,
:type :string}
{:tag 4,
:name :positive-int-value,
:optional? true,
:scalar? true,
:type :uint64}
{:tag 5,
:name :negative-int-value,
:optional? true,
:scalar? true,
:type :int64}
{:tag 6,
:name :double-value,
:optional? true,
:scalar? true,
:type :double}
{:tag 7,
:name :string-value,
:optional? true,
:scalar? true,
:type :bytes}
{:tag 8,
:name :aggregate-value,
:optional? true,
:scalar? true,
:type :string}],
:package "com.google.protobuf",
:name "UninterpretedOption"},
:com.github.jtendermint.jabci.types/evidence
{:fields
[{:tag 1, :name :type, :scalar? true, :type :string}
{:tag 2,
:name :validator,
:type :com.github.jtendermint.jabci.types/validator}
{:tag 3, :name :height, :scalar? true, :type :int64}
{:tag 4,
:name :time,
:type :com.github.jtendermint.jabci.types/timestamp}
{:tag 5, :name :total-voting-power, :scalar? true, :type :int64}],
:package "com.github.jtendermint.jabci.types",
:name "Evidence"},
:com.github.jtendermint.jabci.types/request-deliver-tx
{:fields [{:tag 1, :name :tx, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "RequestDeliverTx"},
:com.github.jtendermint.jabci.types/request-flush
{:package "com.github.jtendermint.jabci.types", :name "RequestFlush"},
:com.github.jtendermint.jabci.types/response-set-option
{:fields
[{:tag 1, :name :code, :scalar?
true, :type :uint32}
{:tag 3, :name :log, :scalar? true, :type :string}
{:tag 4, :name :info, :scalar? true, :type :string}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseSetOption"},
:com.github.jtendermint.jabci.types/request-set-option
{:fields
[{:tag 1, :name :key, :scalar? true, :type :string}
{:tag 2, :name :value, :scalar? true, :type :string}],
:package "com.github.jtendermint.jabci.types",
:name "RequestSetOption"},
:com.github.jtendermint.jabci.types/ki-64-pair
{:fields
[{:tag 1, :name :key, :scalar? true, :type :bytes}
{:tag 2, :name :value, :scalar? true, :type :int64}],
:package "com.github.jtendermint.jabci.types",
:name "KI64Pair"},
:com.github.jtendermint.jabci.types/kv-pair
{:fields
[{:tag 1, :name :key, :scalar? true, :type :bytes}
{:tag 2, :name :value, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "KVPair"},
:com.github.jtendermint.jabci.types/response-commit
{:fields [{:tag 2, :name :data,
:scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseCommit"},
:com.github.jtendermint.jabci.types/proof
{:fields
[{:tag 1,
:name :ops,
:repeated? true,
:type :com.github.jtendermint.jabci.types/proof-op}],
:package "com.github.jtendermint.jabci.types",
:name "Proof"},
:com.github.jtendermint.jabci.types/request-end-block
{:fields [{:tag 1, :name :height, :scalar? true, :type :int64}],
:package "com.github.jtendermint.jabci.types",
:name "RequestEndBlock"},
:com.google.protobuf/field-descriptor-proto
{:fields
[{:tag 1, :name :name, :optional? true, :scalar? true, :type :string}
{:tag 3,
:name :number,
:optional? true,
:scalar? true,
:type :int32}
{:tag 4,
:name :label,
:optional? true,
:type :com.google.protobuf/label}
{:tag 5,
:name :type,
:optional? true,
:type :com.google.protobuf/type}
{:tag 6,
:name :type-name,
:optional? true,
:scalar? true,
:type :string}
{:tag
2,
:name :extendee,
:optional? true,
:scalar? true,
:type :string}
{:tag 7,
:name :default-value,
:optional? true,
:scalar? true,
:type :string}
{:tag 9,
:name :oneof-index,
:optional? true,
:scalar? true,
:type :int32}
{:tag 8,
:name :options,
:optional? true,
:type :com.google.protobuf/field-options}],
:package "com.google.protobuf",
:name "FieldDescriptorProto"},
:com.github.jtendermint.jabci.types/response-init-chain
{:fields
[{:tag 1,
:name :consensus-params,
:type :com.github.jtendermint.jabci.types/consensus-params}
{:tag 2,
:name :validators,
:repeated? true,
:type :com.github.jtendermint.jabci.types/validator-update}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseInitChain"},
:com.github.jtendermint.jabci.types/response-check-tx
{:fields
[{:tag 1, :name :code, :scalar? true, :type :uint32}
{:tag 2, :name :data, :scalar? true, :type :bytes}
{:tag 3, :name :log, :scalar? true
, :type :string}
{:tag 4, :name :info, :scalar? true, :type :string}
{:tag 5, :name :gas-wanted, :scalar? true, :type :int64}
{:tag 6, :name :gas-used, :scalar? true, :type :int64}
{:tag 7,
:name :tags,
:repeated? true,
:type :com.github.jtendermint.jabci.types/kv-pair}
{:tag 8, :name :codespace, :scalar? true, :type :string}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseCheckTx"},
:com.google.protobuf/descriptor-proto
{:fields
[{:tag 1, :name :name, :optional? true, :scalar? true, :type :string}
{:tag 2,
:name :field,
:repeated? true,
:type :com.google.protobuf/field-descriptor-proto}
{:tag 6,
:name :extension,
:repeated? true,
:type :com.google.protobuf/field-descriptor-proto}
{:tag 3,
:name :nested-type,
:repeated? true,
:type :com.google.protobuf/descriptor-proto}
{:tag 4,
:name :enum-type,
:repeated? true,
:type :com.google.protobuf/enum-descriptor-proto}
{:tag 5,
:name :extension-range
,
:repeated? true,
:type :com.google.protobuf/extension-range}
{:tag 8,
:name :oneof-decl,
:repeated? true,
:type :com.google.protobuf/oneof-descriptor-proto}
{:tag 7,
:name :options,
:optional? true,
:type :com.google.protobuf/message-options}
{:tag 9,
:name :reserved-range,
:repeated? true,
:type :com.google.protobuf/reserved-range}
{:tag 10,
:name :reserved-name,
:repeated? true,
:scalar? true,
:type :string}],
:package "com.google.protobuf",
:name "DescriptorProto"},
:com.github.jtendermint.jabci.types/response-begin-block
{:fields
[{:tag 1,
:name :tags,
:repeated? true,
:type :com.github.jtendermint.jabci.types/kv-pair}],
:package "com.github.jtendermint.jabci.types",
:name "ResponseBeginBlock"},
:com.github.jtendermint.jabci.types/block-id
{:fields
[{:tag 1, :name :hash, :scalar? true, :type :bytes}
{:tag 2,
:name :parts-header,
:type :com.github.jtendermint.jabci.types/part-set-header}],
:package
"com.github.jtendermint.jabci.types",
:name "BlockID"},
:com.github.jtendermint.jabci.types/header
{:fields
[{:tag 1,
:name :version,
:type :com.github.jtendermint.jabci.types/version}
{:tag 2, :name :chain-id, :scalar? true, :type :string}
{:tag 3, :name :height, :scalar? true, :type :int64}
{:tag 4,
:name :time,
:type :com.github.jtendermint.jabci.types/timestamp}
{:tag 5, :name :num-txs, :scalar? true, :type :int64}
{:tag 6, :name :total-txs, :scalar? true, :type :int64}
{:tag 7,
:name :last-block-id,
:type :com.github.jtendermint.jabci.types/block-id}
{:tag 8, :name :last-commit-hash, :scalar? true, :type :bytes}
{:tag 9, :name :data-hash, :scalar? true, :type :bytes}
{:tag 10, :name :validators-hash, :scalar? true, :type :bytes}
{:tag 11, :name :next-validators-hash, :scalar? true, :type :bytes}
{:tag 12, :name :consensus-hash, :scalar? true, :type :bytes}
{:tag 13, :name :app-hash, :scalar? true, :type :bytes}
{:tag 14, :name :last-results-hash
, :scalar? true, :type :bytes}
{:tag 15, :name :evidence-hash, :scalar? true, :type :bytes}
{:tag 16, :name :proposer-address, :scalar? true, :type :bytes}],
:package "com.github.jtendermint.jabci.types",
:name "Header"},
:com.github.jtendermint.jabci.types/vote-info
{:fields
[{:tag 1,
:name :validator,
:type :com.github.jtendermint.jabci.types/validator}
{:tag 2, :name :signed-last-block, :scalar? true, :type :boolean}],
:package "com.github.jtendermint.jabci.types",
:name "VoteInfo"},
:com.google.protobuf/service-descriptor-proto
{:fields
[{:tag 1, :name :name, :optional? true, :scalar? true, :type :string}
{:tag 2,
:name :method,
:repeated? true,
:type :com.google.protobuf/method-descriptor-proto}
{:tag 3,
:name :options,
:optional? true,
:type :com.google.protobuf/service-options}],
:package "com.google.protobuf",
:name "ServiceDescriptorProto"},
:com.github.jtendermint.jabci.types/request-info
{:fields
[{:tag 1, :name :version, :scalar?
true, :type :string}
{:tag 2, :name :block-version, :scalar? true, :type :uint64}
{:tag 3, :name :p-2p-version, :scalar? true, :type :uint64}],
:package "com.github.jtendermint.jabci.types",
:name "RequestInfo"}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment