diff --git a/.github/scripts/check-grpc-coverage.py b/.github/scripts/check-grpc-coverage.py index 62681b849e7..a1c64eac924 100755 --- a/.github/scripts/check-grpc-coverage.py +++ b/.github/scripts/check-grpc-coverage.py @@ -14,6 +14,7 @@ # Queries that should be excluded from the check EXCLUDED_QUERIES = { 'broadcastStateTransition', # Explicitly excluded as per requirement + 'subscribePlatformEvents', # Streaming RPC, excluded } # Mapping of proto query names to their expected SDK implementations diff --git a/Cargo.lock b/Cargo.lock index 3b2fbead993..857b3681051 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2009,10 +2009,8 @@ dependencies = [ "arc-swap", "assert_matches", "async-trait", - "base64 0.22.1", "bincode 2.0.0-rc.3", "bls-signatures", - "bs58", "chrono", "ciborium", "clap", @@ -2040,16 +2038,19 @@ dependencies = [ "regex", "reopen", "rocksdb 0.23.0", + "rs-dash-event-bus", "rust_decimal", "rust_decimal_macros", "serde", "serde_json", + "sha2", "simple-signer", "strategy-tests", "tempfile", "tenderdash-abci", "thiserror 1.0.69", "tokio", + "tokio-stream", "tokio-util", "tracing", "tracing-subscriber", @@ -3858,9 +3859,9 @@ dependencies = [ [[package]] name = "metrics-exporter-prometheus" -version = "0.16.2" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" +checksum = "2b166dea96003ee2531cf14833efedced545751d800f03535801d833313f8c15" dependencies = [ "base64 0.22.1", "http-body-util", @@ -3871,16 +3872,16 @@ dependencies = [ "metrics", "metrics-util", "quanta", - "thiserror 1.0.69", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "metrics-util" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8496cc523d1f94c1385dd8f0f0c2c480b2b8aeccb5b7e4485ad6365523ae376" +checksum = "fe8db7a05415d0f919ffb905afa37784f71901c9a773188876984b4f769ab986" dependencies = [ "crossbeam-epoch", "crossbeam-utils", diff --git a/packages/dapi-grpc/clients/drive/v0/nodejs/drive_pbjs.js b/packages/dapi-grpc/clients/drive/v0/nodejs/drive_pbjs.js index 9face0a0893..1d75d8f7380 100644 --- a/packages/dapi-grpc/clients/drive/v0/nodejs/drive_pbjs.js +++ b/packages/dapi-grpc/clients/drive/v0/nodejs/drive_pbjs.js @@ -562,6 +562,2814 @@ $root.org = (function() { */ var v0 = {}; + v0.PlatformSubscriptionRequest = (function() { + + /** + * Properties of a PlatformSubscriptionRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IPlatformSubscriptionRequest + * @property {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0|null} [v0] PlatformSubscriptionRequest v0 + */ + + /** + * Constructs a new PlatformSubscriptionRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a PlatformSubscriptionRequest. + * @implements IPlatformSubscriptionRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest=} [properties] Properties to set + */ + function PlatformSubscriptionRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformSubscriptionRequest v0. + * @member {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @instance + */ + PlatformSubscriptionRequest.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * PlatformSubscriptionRequest version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @instance + */ + Object.defineProperty(PlatformSubscriptionRequest.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PlatformSubscriptionRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} PlatformSubscriptionRequest instance + */ + PlatformSubscriptionRequest.create = function create(properties) { + return new PlatformSubscriptionRequest(properties); + }; + + /** + * Encodes the specified PlatformSubscriptionRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest} message PlatformSubscriptionRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.v0 != null && Object.hasOwnProperty.call(message, "v0")) + $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformSubscriptionRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest} message PlatformSubscriptionRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformSubscriptionRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} PlatformSubscriptionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformSubscriptionRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} PlatformSubscriptionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformSubscriptionRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformSubscriptionRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.v0 != null && message.hasOwnProperty("v0")) { + properties.version = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a PlatformSubscriptionRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} PlatformSubscriptionRequest + */ + PlatformSubscriptionRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformSubscriptionRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a PlatformSubscriptionRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} message PlatformSubscriptionRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformSubscriptionRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.v0 != null && message.hasOwnProperty("v0")) { + object.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this PlatformSubscriptionRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @instance + * @returns {Object.} JSON object + */ + PlatformSubscriptionRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 = (function() { + + /** + * Properties of a PlatformSubscriptionRequestV0. + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @interface IPlatformSubscriptionRequestV0 + * @property {org.dash.platform.dapi.v0.IPlatformFilterV0|null} [filter] PlatformSubscriptionRequestV0 filter + * @property {number|null} [keepalive] PlatformSubscriptionRequestV0 keepalive + */ + + /** + * Constructs a new PlatformSubscriptionRequestV0. + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @classdesc Represents a PlatformSubscriptionRequestV0. + * @implements IPlatformSubscriptionRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0=} [properties] Properties to set + */ + function PlatformSubscriptionRequestV0(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformSubscriptionRequestV0 filter. + * @member {org.dash.platform.dapi.v0.IPlatformFilterV0|null|undefined} filter + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @instance + */ + PlatformSubscriptionRequestV0.prototype.filter = null; + + /** + * PlatformSubscriptionRequestV0 keepalive. + * @member {number} keepalive + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @instance + */ + PlatformSubscriptionRequestV0.prototype.keepalive = 0; + + /** + * Creates a new PlatformSubscriptionRequestV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} PlatformSubscriptionRequestV0 instance + */ + PlatformSubscriptionRequestV0.create = function create(properties) { + return new PlatformSubscriptionRequestV0(properties); + }; + + /** + * Encodes the specified PlatformSubscriptionRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0} message PlatformSubscriptionRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionRequestV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) + $root.org.dash.platform.dapi.v0.PlatformFilterV0.encode(message.filter, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.keepalive != null && Object.hasOwnProperty.call(message, "keepalive")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.keepalive); + return writer; + }; + + /** + * Encodes the specified PlatformSubscriptionRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0} message PlatformSubscriptionRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformSubscriptionRequestV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} PlatformSubscriptionRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionRequestV0.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.filter = $root.org.dash.platform.dapi.v0.PlatformFilterV0.decode(reader, reader.uint32()); + break; + case 2: + message.keepalive = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformSubscriptionRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} PlatformSubscriptionRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformSubscriptionRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformSubscriptionRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.filter != null && message.hasOwnProperty("filter")) { + var error = $root.org.dash.platform.dapi.v0.PlatformFilterV0.verify(message.filter); + if (error) + return "filter." + error; + } + if (message.keepalive != null && message.hasOwnProperty("keepalive")) + if (!$util.isInteger(message.keepalive)) + return "keepalive: integer expected"; + return null; + }; + + /** + * Creates a PlatformSubscriptionRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} PlatformSubscriptionRequestV0 + */ + PlatformSubscriptionRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0(); + if (object.filter != null) { + if (typeof object.filter !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.filter: object expected"); + message.filter = $root.org.dash.platform.dapi.v0.PlatformFilterV0.fromObject(object.filter); + } + if (object.keepalive != null) + message.keepalive = object.keepalive >>> 0; + return message; + }; + + /** + * Creates a plain object from a PlatformSubscriptionRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} message PlatformSubscriptionRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformSubscriptionRequestV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.filter = null; + object.keepalive = 0; + } + if (message.filter != null && message.hasOwnProperty("filter")) + object.filter = $root.org.dash.platform.dapi.v0.PlatformFilterV0.toObject(message.filter, options); + if (message.keepalive != null && message.hasOwnProperty("keepalive")) + object.keepalive = message.keepalive; + return object; + }; + + /** + * Converts this PlatformSubscriptionRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @instance + * @returns {Object.} JSON object + */ + PlatformSubscriptionRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PlatformSubscriptionRequestV0; + })(); + + return PlatformSubscriptionRequest; + })(); + + v0.PlatformSubscriptionResponse = (function() { + + /** + * Properties of a PlatformSubscriptionResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IPlatformSubscriptionResponse + * @property {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0|null} [v0] PlatformSubscriptionResponse v0 + */ + + /** + * Constructs a new PlatformSubscriptionResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a PlatformSubscriptionResponse. + * @implements IPlatformSubscriptionResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionResponse=} [properties] Properties to set + */ + function PlatformSubscriptionResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformSubscriptionResponse v0. + * @member {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @instance + */ + PlatformSubscriptionResponse.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * PlatformSubscriptionResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @instance + */ + Object.defineProperty(PlatformSubscriptionResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PlatformSubscriptionResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} PlatformSubscriptionResponse instance + */ + PlatformSubscriptionResponse.create = function create(properties) { + return new PlatformSubscriptionResponse(properties); + }; + + /** + * Encodes the specified PlatformSubscriptionResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionResponse} message PlatformSubscriptionResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.v0 != null && Object.hasOwnProperty.call(message, "v0")) + $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformSubscriptionResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionResponse} message PlatformSubscriptionResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformSubscriptionResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} PlatformSubscriptionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformSubscriptionResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} PlatformSubscriptionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformSubscriptionResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformSubscriptionResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.v0 != null && message.hasOwnProperty("v0")) { + properties.version = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a PlatformSubscriptionResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} PlatformSubscriptionResponse + */ + PlatformSubscriptionResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformSubscriptionResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a PlatformSubscriptionResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} message PlatformSubscriptionResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformSubscriptionResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.v0 != null && message.hasOwnProperty("v0")) { + object.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this PlatformSubscriptionResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @instance + * @returns {Object.} JSON object + */ + PlatformSubscriptionResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 = (function() { + + /** + * Properties of a PlatformSubscriptionResponseV0. + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @interface IPlatformSubscriptionResponseV0 + * @property {number|Long|null} [subscriptionId] PlatformSubscriptionResponseV0 subscriptionId + * @property {org.dash.platform.dapi.v0.IPlatformEventV0|null} [event] PlatformSubscriptionResponseV0 event + */ + + /** + * Constructs a new PlatformSubscriptionResponseV0. + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @classdesc Represents a PlatformSubscriptionResponseV0. + * @implements IPlatformSubscriptionResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0=} [properties] Properties to set + */ + function PlatformSubscriptionResponseV0(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformSubscriptionResponseV0 subscriptionId. + * @member {number|Long} subscriptionId + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @instance + */ + PlatformSubscriptionResponseV0.prototype.subscriptionId = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * PlatformSubscriptionResponseV0 event. + * @member {org.dash.platform.dapi.v0.IPlatformEventV0|null|undefined} event + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @instance + */ + PlatformSubscriptionResponseV0.prototype.event = null; + + /** + * Creates a new PlatformSubscriptionResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} PlatformSubscriptionResponseV0 instance + */ + PlatformSubscriptionResponseV0.create = function create(properties) { + return new PlatformSubscriptionResponseV0(properties); + }; + + /** + * Encodes the specified PlatformSubscriptionResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0} message PlatformSubscriptionResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.subscriptionId != null && Object.hasOwnProperty.call(message, "subscriptionId")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.subscriptionId); + if (message.event != null && Object.hasOwnProperty.call(message, "event")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.encode(message.event, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformSubscriptionResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0} message PlatformSubscriptionResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformSubscriptionResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} PlatformSubscriptionResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionResponseV0.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.subscriptionId = reader.uint64(); + break; + case 2: + message.event = $root.org.dash.platform.dapi.v0.PlatformEventV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformSubscriptionResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} PlatformSubscriptionResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformSubscriptionResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformSubscriptionResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.subscriptionId != null && message.hasOwnProperty("subscriptionId")) + if (!$util.isInteger(message.subscriptionId) && !(message.subscriptionId && $util.isInteger(message.subscriptionId.low) && $util.isInteger(message.subscriptionId.high))) + return "subscriptionId: integer|Long expected"; + if (message.event != null && message.hasOwnProperty("event")) { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.verify(message.event); + if (error) + return "event." + error; + } + return null; + }; + + /** + * Creates a PlatformSubscriptionResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} PlatformSubscriptionResponseV0 + */ + PlatformSubscriptionResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0(); + if (object.subscriptionId != null) + if ($util.Long) + (message.subscriptionId = $util.Long.fromValue(object.subscriptionId)).unsigned = true; + else if (typeof object.subscriptionId === "string") + message.subscriptionId = parseInt(object.subscriptionId, 10); + else if (typeof object.subscriptionId === "number") + message.subscriptionId = object.subscriptionId; + else if (typeof object.subscriptionId === "object") + message.subscriptionId = new $util.LongBits(object.subscriptionId.low >>> 0, object.subscriptionId.high >>> 0).toNumber(true); + if (object.event != null) { + if (typeof object.event !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.event: object expected"); + message.event = $root.org.dash.platform.dapi.v0.PlatformEventV0.fromObject(object.event); + } + return message; + }; + + /** + * Creates a plain object from a PlatformSubscriptionResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} message PlatformSubscriptionResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformSubscriptionResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.subscriptionId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.subscriptionId = options.longs === String ? "0" : 0; + object.event = null; + } + if (message.subscriptionId != null && message.hasOwnProperty("subscriptionId")) + if (typeof message.subscriptionId === "number") + object.subscriptionId = options.longs === String ? String(message.subscriptionId) : message.subscriptionId; + else + object.subscriptionId = options.longs === String ? $util.Long.prototype.toString.call(message.subscriptionId) : options.longs === Number ? new $util.LongBits(message.subscriptionId.low >>> 0, message.subscriptionId.high >>> 0).toNumber(true) : message.subscriptionId; + if (message.event != null && message.hasOwnProperty("event")) + object.event = $root.org.dash.platform.dapi.v0.PlatformEventV0.toObject(message.event, options); + return object; + }; + + /** + * Converts this PlatformSubscriptionResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @instance + * @returns {Object.} JSON object + */ + PlatformSubscriptionResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PlatformSubscriptionResponseV0; + })(); + + return PlatformSubscriptionResponse; + })(); + + v0.PlatformFilterV0 = (function() { + + /** + * Properties of a PlatformFilterV0. + * @memberof org.dash.platform.dapi.v0 + * @interface IPlatformFilterV0 + * @property {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents|null} [all] PlatformFilterV0 all + * @property {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted|null} [blockCommitted] PlatformFilterV0 blockCommitted + * @property {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter|null} [stateTransitionResult] PlatformFilterV0 stateTransitionResult + */ + + /** + * Constructs a new PlatformFilterV0. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a PlatformFilterV0. + * @implements IPlatformFilterV0 + * @constructor + * @param {org.dash.platform.dapi.v0.IPlatformFilterV0=} [properties] Properties to set + */ + function PlatformFilterV0(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformFilterV0 all. + * @member {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents|null|undefined} all + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + */ + PlatformFilterV0.prototype.all = null; + + /** + * PlatformFilterV0 blockCommitted. + * @member {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted|null|undefined} blockCommitted + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + */ + PlatformFilterV0.prototype.blockCommitted = null; + + /** + * PlatformFilterV0 stateTransitionResult. + * @member {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter|null|undefined} stateTransitionResult + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + */ + PlatformFilterV0.prototype.stateTransitionResult = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * PlatformFilterV0 kind. + * @member {"all"|"blockCommitted"|"stateTransitionResult"|undefined} kind + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + */ + Object.defineProperty(PlatformFilterV0.prototype, "kind", { + get: $util.oneOfGetter($oneOfFields = ["all", "blockCommitted", "stateTransitionResult"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PlatformFilterV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformFilterV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0} PlatformFilterV0 instance + */ + PlatformFilterV0.create = function create(properties) { + return new PlatformFilterV0(properties); + }; + + /** + * Encodes the specified PlatformFilterV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformFilterV0} message PlatformFilterV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformFilterV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.all != null && Object.hasOwnProperty.call(message, "all")) + $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.encode(message.all, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.blockCommitted != null && Object.hasOwnProperty.call(message, "blockCommitted")) + $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.encode(message.blockCommitted, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.stateTransitionResult != null && Object.hasOwnProperty.call(message, "stateTransitionResult")) + $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.encode(message.stateTransitionResult, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformFilterV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformFilterV0} message PlatformFilterV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformFilterV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformFilterV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0} PlatformFilterV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformFilterV0.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.all = $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.decode(reader, reader.uint32()); + break; + case 2: + message.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.decode(reader, reader.uint32()); + break; + case 3: + message.stateTransitionResult = $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformFilterV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0} PlatformFilterV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformFilterV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformFilterV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformFilterV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.all != null && message.hasOwnProperty("all")) { + properties.kind = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.verify(message.all); + if (error) + return "all." + error; + } + } + if (message.blockCommitted != null && message.hasOwnProperty("blockCommitted")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.verify(message.blockCommitted); + if (error) + return "blockCommitted." + error; + } + } + if (message.stateTransitionResult != null && message.hasOwnProperty("stateTransitionResult")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.verify(message.stateTransitionResult); + if (error) + return "stateTransitionResult." + error; + } + } + return null; + }; + + /** + * Creates a PlatformFilterV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0} PlatformFilterV0 + */ + PlatformFilterV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformFilterV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0(); + if (object.all != null) { + if (typeof object.all !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformFilterV0.all: object expected"); + message.all = $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.fromObject(object.all); + } + if (object.blockCommitted != null) { + if (typeof object.blockCommitted !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformFilterV0.blockCommitted: object expected"); + message.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.fromObject(object.blockCommitted); + } + if (object.stateTransitionResult != null) { + if (typeof object.stateTransitionResult !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformFilterV0.stateTransitionResult: object expected"); + message.stateTransitionResult = $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.fromObject(object.stateTransitionResult); + } + return message; + }; + + /** + * Creates a plain object from a PlatformFilterV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0} message PlatformFilterV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformFilterV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.all != null && message.hasOwnProperty("all")) { + object.all = $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.toObject(message.all, options); + if (options.oneofs) + object.kind = "all"; + } + if (message.blockCommitted != null && message.hasOwnProperty("blockCommitted")) { + object.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.toObject(message.blockCommitted, options); + if (options.oneofs) + object.kind = "blockCommitted"; + } + if (message.stateTransitionResult != null && message.hasOwnProperty("stateTransitionResult")) { + object.stateTransitionResult = $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.toObject(message.stateTransitionResult, options); + if (options.oneofs) + object.kind = "stateTransitionResult"; + } + return object; + }; + + /** + * Converts this PlatformFilterV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + * @returns {Object.} JSON object + */ + PlatformFilterV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + PlatformFilterV0.AllEvents = (function() { + + /** + * Properties of an AllEvents. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @interface IAllEvents + */ + + /** + * Constructs a new AllEvents. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @classdesc Represents an AllEvents. + * @implements IAllEvents + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents=} [properties] Properties to set + */ + function AllEvents(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new AllEvents instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} AllEvents instance + */ + AllEvents.create = function create(properties) { + return new AllEvents(properties); + }; + + /** + * Encodes the specified AllEvents message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents} message AllEvents message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AllEvents.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified AllEvents message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents} message AllEvents message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AllEvents.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an AllEvents message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} AllEvents + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AllEvents.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an AllEvents message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} AllEvents + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AllEvents.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an AllEvents message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AllEvents.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates an AllEvents message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} AllEvents + */ + AllEvents.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents) + return object; + return new $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents(); + }; + + /** + * Creates a plain object from an AllEvents message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} message AllEvents + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AllEvents.toObject = function toObject() { + return {}; + }; + + /** + * Converts this AllEvents to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @instance + * @returns {Object.} JSON object + */ + AllEvents.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return AllEvents; + })(); + + PlatformFilterV0.BlockCommitted = (function() { + + /** + * Properties of a BlockCommitted. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @interface IBlockCommitted + */ + + /** + * Constructs a new BlockCommitted. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @classdesc Represents a BlockCommitted. + * @implements IBlockCommitted + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted=} [properties] Properties to set + */ + function BlockCommitted(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new BlockCommitted instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} BlockCommitted instance + */ + BlockCommitted.create = function create(properties) { + return new BlockCommitted(properties); + }; + + /** + * Encodes the specified BlockCommitted message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted} message BlockCommitted message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockCommitted.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified BlockCommitted message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted} message BlockCommitted message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockCommitted.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BlockCommitted message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} BlockCommitted + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockCommitted.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BlockCommitted message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} BlockCommitted + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockCommitted.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BlockCommitted message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BlockCommitted.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a BlockCommitted message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} BlockCommitted + */ + BlockCommitted.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted) + return object; + return new $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted(); + }; + + /** + * Creates a plain object from a BlockCommitted message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} message BlockCommitted + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BlockCommitted.toObject = function toObject() { + return {}; + }; + + /** + * Converts this BlockCommitted to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @instance + * @returns {Object.} JSON object + */ + BlockCommitted.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BlockCommitted; + })(); + + PlatformFilterV0.StateTransitionResultFilter = (function() { + + /** + * Properties of a StateTransitionResultFilter. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @interface IStateTransitionResultFilter + * @property {Uint8Array|null} [txHash] StateTransitionResultFilter txHash + */ + + /** + * Constructs a new StateTransitionResultFilter. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @classdesc Represents a StateTransitionResultFilter. + * @implements IStateTransitionResultFilter + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter=} [properties] Properties to set + */ + function StateTransitionResultFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * StateTransitionResultFilter txHash. + * @member {Uint8Array} txHash + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @instance + */ + StateTransitionResultFilter.prototype.txHash = $util.newBuffer([]); + + /** + * Creates a new StateTransitionResultFilter instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} StateTransitionResultFilter instance + */ + StateTransitionResultFilter.create = function create(properties) { + return new StateTransitionResultFilter(properties); + }; + + /** + * Encodes the specified StateTransitionResultFilter message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter} message StateTransitionResultFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateTransitionResultFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.txHash != null && Object.hasOwnProperty.call(message, "txHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.txHash); + return writer; + }; + + /** + * Encodes the specified StateTransitionResultFilter message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter} message StateTransitionResultFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateTransitionResultFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StateTransitionResultFilter message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} StateTransitionResultFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateTransitionResultFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StateTransitionResultFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} StateTransitionResultFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateTransitionResultFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StateTransitionResultFilter message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StateTransitionResultFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.txHash != null && message.hasOwnProperty("txHash")) + if (!(message.txHash && typeof message.txHash.length === "number" || $util.isString(message.txHash))) + return "txHash: buffer expected"; + return null; + }; + + /** + * Creates a StateTransitionResultFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} StateTransitionResultFilter + */ + StateTransitionResultFilter.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter(); + if (object.txHash != null) + if (typeof object.txHash === "string") + $util.base64.decode(object.txHash, message.txHash = $util.newBuffer($util.base64.length(object.txHash)), 0); + else if (object.txHash.length >= 0) + message.txHash = object.txHash; + return message; + }; + + /** + * Creates a plain object from a StateTransitionResultFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} message StateTransitionResultFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StateTransitionResultFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + if (options.bytes === String) + object.txHash = ""; + else { + object.txHash = []; + if (options.bytes !== Array) + object.txHash = $util.newBuffer(object.txHash); + } + if (message.txHash != null && message.hasOwnProperty("txHash")) + object.txHash = options.bytes === String ? $util.base64.encode(message.txHash, 0, message.txHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.txHash) : message.txHash; + return object; + }; + + /** + * Converts this StateTransitionResultFilter to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @instance + * @returns {Object.} JSON object + */ + StateTransitionResultFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return StateTransitionResultFilter; + })(); + + return PlatformFilterV0; + })(); + + v0.PlatformEventV0 = (function() { + + /** + * Properties of a PlatformEventV0. + * @memberof org.dash.platform.dapi.v0 + * @interface IPlatformEventV0 + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted|null} [blockCommitted] PlatformEventV0 blockCommitted + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized|null} [stateTransitionFinalized] PlatformEventV0 stateTransitionFinalized + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive|null} [keepalive] PlatformEventV0 keepalive + */ + + /** + * Constructs a new PlatformEventV0. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a PlatformEventV0. + * @implements IPlatformEventV0 + * @constructor + * @param {org.dash.platform.dapi.v0.IPlatformEventV0=} [properties] Properties to set + */ + function PlatformEventV0(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformEventV0 blockCommitted. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted|null|undefined} blockCommitted + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + */ + PlatformEventV0.prototype.blockCommitted = null; + + /** + * PlatformEventV0 stateTransitionFinalized. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized|null|undefined} stateTransitionFinalized + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + */ + PlatformEventV0.prototype.stateTransitionFinalized = null; + + /** + * PlatformEventV0 keepalive. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive|null|undefined} keepalive + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + */ + PlatformEventV0.prototype.keepalive = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * PlatformEventV0 event. + * @member {"blockCommitted"|"stateTransitionFinalized"|"keepalive"|undefined} event + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + */ + Object.defineProperty(PlatformEventV0.prototype, "event", { + get: $util.oneOfGetter($oneOfFields = ["blockCommitted", "stateTransitionFinalized", "keepalive"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PlatformEventV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformEventV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0} PlatformEventV0 instance + */ + PlatformEventV0.create = function create(properties) { + return new PlatformEventV0(properties); + }; + + /** + * Encodes the specified PlatformEventV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformEventV0} message PlatformEventV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformEventV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.blockCommitted != null && Object.hasOwnProperty.call(message, "blockCommitted")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.encode(message.blockCommitted, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.stateTransitionFinalized != null && Object.hasOwnProperty.call(message, "stateTransitionFinalized")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.encode(message.stateTransitionFinalized, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.keepalive != null && Object.hasOwnProperty.call(message, "keepalive")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.encode(message.keepalive, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformEventV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformEventV0} message PlatformEventV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformEventV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformEventV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0} PlatformEventV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformEventV0.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.decode(reader, reader.uint32()); + break; + case 2: + message.stateTransitionFinalized = $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.decode(reader, reader.uint32()); + break; + case 3: + message.keepalive = $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformEventV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0} PlatformEventV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformEventV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformEventV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformEventV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.blockCommitted != null && message.hasOwnProperty("blockCommitted")) { + properties.event = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.verify(message.blockCommitted); + if (error) + return "blockCommitted." + error; + } + } + if (message.stateTransitionFinalized != null && message.hasOwnProperty("stateTransitionFinalized")) { + if (properties.event === 1) + return "event: multiple values"; + properties.event = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.verify(message.stateTransitionFinalized); + if (error) + return "stateTransitionFinalized." + error; + } + } + if (message.keepalive != null && message.hasOwnProperty("keepalive")) { + if (properties.event === 1) + return "event: multiple values"; + properties.event = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.verify(message.keepalive); + if (error) + return "keepalive." + error; + } + } + return null; + }; + + /** + * Creates a PlatformEventV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0} PlatformEventV0 + */ + PlatformEventV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformEventV0(); + if (object.blockCommitted != null) { + if (typeof object.blockCommitted !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.blockCommitted: object expected"); + message.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.fromObject(object.blockCommitted); + } + if (object.stateTransitionFinalized != null) { + if (typeof object.stateTransitionFinalized !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.stateTransitionFinalized: object expected"); + message.stateTransitionFinalized = $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.fromObject(object.stateTransitionFinalized); + } + if (object.keepalive != null) { + if (typeof object.keepalive !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.keepalive: object expected"); + message.keepalive = $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.fromObject(object.keepalive); + } + return message; + }; + + /** + * Creates a plain object from a PlatformEventV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0} message PlatformEventV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformEventV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.blockCommitted != null && message.hasOwnProperty("blockCommitted")) { + object.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.toObject(message.blockCommitted, options); + if (options.oneofs) + object.event = "blockCommitted"; + } + if (message.stateTransitionFinalized != null && message.hasOwnProperty("stateTransitionFinalized")) { + object.stateTransitionFinalized = $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.toObject(message.stateTransitionFinalized, options); + if (options.oneofs) + object.event = "stateTransitionFinalized"; + } + if (message.keepalive != null && message.hasOwnProperty("keepalive")) { + object.keepalive = $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.toObject(message.keepalive, options); + if (options.oneofs) + object.event = "keepalive"; + } + return object; + }; + + /** + * Converts this PlatformEventV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + * @returns {Object.} JSON object + */ + PlatformEventV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + PlatformEventV0.BlockMetadata = (function() { + + /** + * Properties of a BlockMetadata. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @interface IBlockMetadata + * @property {number|Long|null} [height] BlockMetadata height + * @property {number|Long|null} [timeMs] BlockMetadata timeMs + * @property {Uint8Array|null} [blockIdHash] BlockMetadata blockIdHash + */ + + /** + * Constructs a new BlockMetadata. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @classdesc Represents a BlockMetadata. + * @implements IBlockMetadata + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata=} [properties] Properties to set + */ + function BlockMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BlockMetadata height. + * @member {number|Long} height + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @instance + */ + BlockMetadata.prototype.height = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * BlockMetadata timeMs. + * @member {number|Long} timeMs + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @instance + */ + BlockMetadata.prototype.timeMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * BlockMetadata blockIdHash. + * @member {Uint8Array} blockIdHash + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @instance + */ + BlockMetadata.prototype.blockIdHash = $util.newBuffer([]); + + /** + * Creates a new BlockMetadata instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} BlockMetadata instance + */ + BlockMetadata.create = function create(properties) { + return new BlockMetadata(properties); + }; + + /** + * Encodes the specified BlockMetadata message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata} message BlockMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.height != null && Object.hasOwnProperty.call(message, "height")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.height); + if (message.timeMs != null && Object.hasOwnProperty.call(message, "timeMs")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.timeMs); + if (message.blockIdHash != null && Object.hasOwnProperty.call(message, "blockIdHash")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.blockIdHash); + return writer; + }; + + /** + * Encodes the specified BlockMetadata message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata} message BlockMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BlockMetadata message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} BlockMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.uint64(); + break; + case 2: + message.timeMs = reader.uint64(); + break; + case 3: + message.blockIdHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BlockMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} BlockMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BlockMetadata message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BlockMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.height != null && message.hasOwnProperty("height")) + if (!$util.isInteger(message.height) && !(message.height && $util.isInteger(message.height.low) && $util.isInteger(message.height.high))) + return "height: integer|Long expected"; + if (message.timeMs != null && message.hasOwnProperty("timeMs")) + if (!$util.isInteger(message.timeMs) && !(message.timeMs && $util.isInteger(message.timeMs.low) && $util.isInteger(message.timeMs.high))) + return "timeMs: integer|Long expected"; + if (message.blockIdHash != null && message.hasOwnProperty("blockIdHash")) + if (!(message.blockIdHash && typeof message.blockIdHash.length === "number" || $util.isString(message.blockIdHash))) + return "blockIdHash: buffer expected"; + return null; + }; + + /** + * Creates a BlockMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} BlockMetadata + */ + BlockMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata(); + if (object.height != null) + if ($util.Long) + (message.height = $util.Long.fromValue(object.height)).unsigned = true; + else if (typeof object.height === "string") + message.height = parseInt(object.height, 10); + else if (typeof object.height === "number") + message.height = object.height; + else if (typeof object.height === "object") + message.height = new $util.LongBits(object.height.low >>> 0, object.height.high >>> 0).toNumber(true); + if (object.timeMs != null) + if ($util.Long) + (message.timeMs = $util.Long.fromValue(object.timeMs)).unsigned = true; + else if (typeof object.timeMs === "string") + message.timeMs = parseInt(object.timeMs, 10); + else if (typeof object.timeMs === "number") + message.timeMs = object.timeMs; + else if (typeof object.timeMs === "object") + message.timeMs = new $util.LongBits(object.timeMs.low >>> 0, object.timeMs.high >>> 0).toNumber(true); + if (object.blockIdHash != null) + if (typeof object.blockIdHash === "string") + $util.base64.decode(object.blockIdHash, message.blockIdHash = $util.newBuffer($util.base64.length(object.blockIdHash)), 0); + else if (object.blockIdHash.length >= 0) + message.blockIdHash = object.blockIdHash; + return message; + }; + + /** + * Creates a plain object from a BlockMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} message BlockMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BlockMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.height = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.height = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.timeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.timeMs = options.longs === String ? "0" : 0; + if (options.bytes === String) + object.blockIdHash = ""; + else { + object.blockIdHash = []; + if (options.bytes !== Array) + object.blockIdHash = $util.newBuffer(object.blockIdHash); + } + } + if (message.height != null && message.hasOwnProperty("height")) + if (typeof message.height === "number") + object.height = options.longs === String ? String(message.height) : message.height; + else + object.height = options.longs === String ? $util.Long.prototype.toString.call(message.height) : options.longs === Number ? new $util.LongBits(message.height.low >>> 0, message.height.high >>> 0).toNumber(true) : message.height; + if (message.timeMs != null && message.hasOwnProperty("timeMs")) + if (typeof message.timeMs === "number") + object.timeMs = options.longs === String ? String(message.timeMs) : message.timeMs; + else + object.timeMs = options.longs === String ? $util.Long.prototype.toString.call(message.timeMs) : options.longs === Number ? new $util.LongBits(message.timeMs.low >>> 0, message.timeMs.high >>> 0).toNumber(true) : message.timeMs; + if (message.blockIdHash != null && message.hasOwnProperty("blockIdHash")) + object.blockIdHash = options.bytes === String ? $util.base64.encode(message.blockIdHash, 0, message.blockIdHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.blockIdHash) : message.blockIdHash; + return object; + }; + + /** + * Converts this BlockMetadata to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @instance + * @returns {Object.} JSON object + */ + BlockMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BlockMetadata; + })(); + + PlatformEventV0.BlockCommitted = (function() { + + /** + * Properties of a BlockCommitted. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @interface IBlockCommitted + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata|null} [meta] BlockCommitted meta + * @property {number|null} [txCount] BlockCommitted txCount + */ + + /** + * Constructs a new BlockCommitted. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @classdesc Represents a BlockCommitted. + * @implements IBlockCommitted + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted=} [properties] Properties to set + */ + function BlockCommitted(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BlockCommitted meta. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata|null|undefined} meta + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @instance + */ + BlockCommitted.prototype.meta = null; + + /** + * BlockCommitted txCount. + * @member {number} txCount + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @instance + */ + BlockCommitted.prototype.txCount = 0; + + /** + * Creates a new BlockCommitted instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} BlockCommitted instance + */ + BlockCommitted.create = function create(properties) { + return new BlockCommitted(properties); + }; + + /** + * Encodes the specified BlockCommitted message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted} message BlockCommitted message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockCommitted.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.meta != null && Object.hasOwnProperty.call(message, "meta")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.encode(message.meta, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.txCount != null && Object.hasOwnProperty.call(message, "txCount")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.txCount); + return writer; + }; + + /** + * Encodes the specified BlockCommitted message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted} message BlockCommitted message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockCommitted.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BlockCommitted message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} BlockCommitted + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockCommitted.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.decode(reader, reader.uint32()); + break; + case 2: + message.txCount = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BlockCommitted message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} BlockCommitted + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockCommitted.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BlockCommitted message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BlockCommitted.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.meta != null && message.hasOwnProperty("meta")) { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.verify(message.meta); + if (error) + return "meta." + error; + } + if (message.txCount != null && message.hasOwnProperty("txCount")) + if (!$util.isInteger(message.txCount)) + return "txCount: integer expected"; + return null; + }; + + /** + * Creates a BlockCommitted message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} BlockCommitted + */ + BlockCommitted.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted(); + if (object.meta != null) { + if (typeof object.meta !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.meta: object expected"); + message.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.fromObject(object.meta); + } + if (object.txCount != null) + message.txCount = object.txCount >>> 0; + return message; + }; + + /** + * Creates a plain object from a BlockCommitted message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} message BlockCommitted + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BlockCommitted.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.meta = null; + object.txCount = 0; + } + if (message.meta != null && message.hasOwnProperty("meta")) + object.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(message.meta, options); + if (message.txCount != null && message.hasOwnProperty("txCount")) + object.txCount = message.txCount; + return object; + }; + + /** + * Converts this BlockCommitted to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @instance + * @returns {Object.} JSON object + */ + BlockCommitted.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BlockCommitted; + })(); + + PlatformEventV0.StateTransitionFinalized = (function() { + + /** + * Properties of a StateTransitionFinalized. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @interface IStateTransitionFinalized + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata|null} [meta] StateTransitionFinalized meta + * @property {Uint8Array|null} [txHash] StateTransitionFinalized txHash + */ + + /** + * Constructs a new StateTransitionFinalized. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @classdesc Represents a StateTransitionFinalized. + * @implements IStateTransitionFinalized + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized=} [properties] Properties to set + */ + function StateTransitionFinalized(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * StateTransitionFinalized meta. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata|null|undefined} meta + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @instance + */ + StateTransitionFinalized.prototype.meta = null; + + /** + * StateTransitionFinalized txHash. + * @member {Uint8Array} txHash + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @instance + */ + StateTransitionFinalized.prototype.txHash = $util.newBuffer([]); + + /** + * Creates a new StateTransitionFinalized instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} StateTransitionFinalized instance + */ + StateTransitionFinalized.create = function create(properties) { + return new StateTransitionFinalized(properties); + }; + + /** + * Encodes the specified StateTransitionFinalized message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized} message StateTransitionFinalized message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateTransitionFinalized.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.meta != null && Object.hasOwnProperty.call(message, "meta")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.encode(message.meta, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.txHash != null && Object.hasOwnProperty.call(message, "txHash")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.txHash); + return writer; + }; + + /** + * Encodes the specified StateTransitionFinalized message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized} message StateTransitionFinalized message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateTransitionFinalized.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StateTransitionFinalized message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} StateTransitionFinalized + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateTransitionFinalized.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.decode(reader, reader.uint32()); + break; + case 2: + message.txHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StateTransitionFinalized message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} StateTransitionFinalized + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateTransitionFinalized.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StateTransitionFinalized message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StateTransitionFinalized.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.meta != null && message.hasOwnProperty("meta")) { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.verify(message.meta); + if (error) + return "meta." + error; + } + if (message.txHash != null && message.hasOwnProperty("txHash")) + if (!(message.txHash && typeof message.txHash.length === "number" || $util.isString(message.txHash))) + return "txHash: buffer expected"; + return null; + }; + + /** + * Creates a StateTransitionFinalized message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} StateTransitionFinalized + */ + StateTransitionFinalized.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized(); + if (object.meta != null) { + if (typeof object.meta !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.meta: object expected"); + message.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.fromObject(object.meta); + } + if (object.txHash != null) + if (typeof object.txHash === "string") + $util.base64.decode(object.txHash, message.txHash = $util.newBuffer($util.base64.length(object.txHash)), 0); + else if (object.txHash.length >= 0) + message.txHash = object.txHash; + return message; + }; + + /** + * Creates a plain object from a StateTransitionFinalized message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} message StateTransitionFinalized + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StateTransitionFinalized.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.meta = null; + if (options.bytes === String) + object.txHash = ""; + else { + object.txHash = []; + if (options.bytes !== Array) + object.txHash = $util.newBuffer(object.txHash); + } + } + if (message.meta != null && message.hasOwnProperty("meta")) + object.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(message.meta, options); + if (message.txHash != null && message.hasOwnProperty("txHash")) + object.txHash = options.bytes === String ? $util.base64.encode(message.txHash, 0, message.txHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.txHash) : message.txHash; + return object; + }; + + /** + * Converts this StateTransitionFinalized to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @instance + * @returns {Object.} JSON object + */ + StateTransitionFinalized.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return StateTransitionFinalized; + })(); + + PlatformEventV0.Keepalive = (function() { + + /** + * Properties of a Keepalive. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @interface IKeepalive + */ + + /** + * Constructs a new Keepalive. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @classdesc Represents a Keepalive. + * @implements IKeepalive + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive=} [properties] Properties to set + */ + function Keepalive(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new Keepalive instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} Keepalive instance + */ + Keepalive.create = function create(properties) { + return new Keepalive(properties); + }; + + /** + * Encodes the specified Keepalive message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive} message Keepalive message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Keepalive.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified Keepalive message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive} message Keepalive message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Keepalive.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Keepalive message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} Keepalive + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Keepalive.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Keepalive message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} Keepalive + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Keepalive.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Keepalive message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Keepalive.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a Keepalive message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} Keepalive + */ + Keepalive.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive) + return object; + return new $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive(); + }; + + /** + * Creates a plain object from a Keepalive message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} message Keepalive + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Keepalive.toObject = function toObject() { + return {}; + }; + + /** + * Converts this Keepalive to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @instance + * @returns {Object.} JSON object + */ + Keepalive.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Keepalive; + })(); + + return PlatformEventV0; + })(); + v0.Platform = (function() { /** @@ -2145,6 +4953,39 @@ $root.org = (function() { * @variation 2 */ + /** + * Callback as used by {@link org.dash.platform.dapi.v0.Platform#subscribePlatformEvents}. + * @memberof org.dash.platform.dapi.v0.Platform + * @typedef subscribePlatformEventsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} [response] PlatformSubscriptionResponse + */ + + /** + * Calls subscribePlatformEvents. + * @function subscribePlatformEvents + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest} request PlatformSubscriptionRequest message or plain object + * @param {org.dash.platform.dapi.v0.Platform.subscribePlatformEventsCallback} callback Node-style callback called with the error, if any, and PlatformSubscriptionResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Platform.prototype.subscribePlatformEvents = function subscribePlatformEvents(request, callback) { + return this.rpcCall(subscribePlatformEvents, $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest, $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse, request, callback); + }, "name", { value: "subscribePlatformEvents" }); + + /** + * Calls subscribePlatformEvents. + * @function subscribePlatformEvents + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest} request PlatformSubscriptionRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return Platform; })(); diff --git a/packages/dapi-grpc/clients/platform/v0/java/org/dash/platform/dapi/v0/PlatformGrpc.java b/packages/dapi-grpc/clients/platform/v0/java/org/dash/platform/dapi/v0/PlatformGrpc.java index 0c5dfedfdeb..092241a1f3e 100644 --- a/packages/dapi-grpc/clients/platform/v0/java/org/dash/platform/dapi/v0/PlatformGrpc.java +++ b/packages/dapi-grpc/clients/platform/v0/java/org/dash/platform/dapi/v0/PlatformGrpc.java @@ -1472,6 +1472,37 @@ org.dash.platform.dapi.v0.PlatformOuterClass.GetGroupActionSignersResponse> getG return getGetGroupActionSignersMethod; } + private static volatile io.grpc.MethodDescriptor getSubscribePlatformEventsMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "subscribePlatformEvents", + requestType = org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionRequest.class, + responseType = org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) + public static io.grpc.MethodDescriptor getSubscribePlatformEventsMethod() { + io.grpc.MethodDescriptor getSubscribePlatformEventsMethod; + if ((getSubscribePlatformEventsMethod = PlatformGrpc.getSubscribePlatformEventsMethod) == null) { + synchronized (PlatformGrpc.class) { + if ((getSubscribePlatformEventsMethod = PlatformGrpc.getSubscribePlatformEventsMethod) == null) { + PlatformGrpc.getSubscribePlatformEventsMethod = getSubscribePlatformEventsMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "subscribePlatformEvents")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionResponse.getDefaultInstance())) + .setSchemaDescriptor(new PlatformMethodDescriptorSupplier("subscribePlatformEvents")) + .build(); + } + } + } + return getSubscribePlatformEventsMethod; + } + /** * Creates a new async stub that supports all call types for the service */ @@ -1864,6 +1895,19 @@ public void getGroupActionSigners(org.dash.platform.dapi.v0.PlatformOuterClass.G io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetGroupActionSignersMethod(), responseObserver); } + /** + *
+     * Server-streaming subscription for platform events.
+     * Allows subscribing to various Platform events.
+     * 
+     * Once connected, it sends handshake response with empty event.
+     * 
+ */ + public void subscribePlatformEvents(org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSubscribePlatformEventsMethod(), responseObserver); + } + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) .addMethod( @@ -2195,6 +2239,13 @@ public void getGroupActionSigners(org.dash.platform.dapi.v0.PlatformOuterClass.G org.dash.platform.dapi.v0.PlatformOuterClass.GetGroupActionSignersRequest, org.dash.platform.dapi.v0.PlatformOuterClass.GetGroupActionSignersResponse>( this, METHODID_GET_GROUP_ACTION_SIGNERS))) + .addMethod( + getSubscribePlatformEventsMethod(), + io.grpc.stub.ServerCalls.asyncServerStreamingCall( + new MethodHandlers< + org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionRequest, + org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionResponse>( + this, METHODID_SUBSCRIBE_PLATFORM_EVENTS))) .build(); } } @@ -2603,6 +2654,20 @@ public void getGroupActionSigners(org.dash.platform.dapi.v0.PlatformOuterClass.G io.grpc.stub.ClientCalls.asyncUnaryCall( getChannel().newCall(getGetGroupActionSignersMethod(), getCallOptions()), request, responseObserver); } + + /** + *
+     * Server-streaming subscription for platform events.
+     * Allows subscribing to various Platform events.
+     * 
+     * Once connected, it sends handshake response with empty event.
+     * 
+ */ + public void subscribePlatformEvents(org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncServerStreamingCall( + getChannel().newCall(getSubscribePlatformEventsMethod(), getCallOptions()), request, responseObserver); + } } /** @@ -2962,6 +3027,20 @@ public org.dash.platform.dapi.v0.PlatformOuterClass.GetGroupActionSignersRespons return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getGetGroupActionSignersMethod(), getCallOptions(), request); } + + /** + *
+     * Server-streaming subscription for platform events.
+     * Allows subscribing to various Platform events.
+     * 
+     * Once connected, it sends handshake response with empty event.
+     * 
+ */ + public java.util.Iterator subscribePlatformEvents( + org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionRequest request) { + return io.grpc.stub.ClientCalls.blockingServerStreamingCall( + getChannel(), getSubscribePlatformEventsMethod(), getCallOptions(), request); + } } /** @@ -3417,6 +3496,7 @@ public com.google.common.util.concurrent.ListenableFuture implements io.grpc.stub.ServerCalls.UnaryMethod, @@ -3623,6 +3703,10 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv serviceImpl.getGroupActionSigners((org.dash.platform.dapi.v0.PlatformOuterClass.GetGroupActionSignersRequest) request, (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_SUBSCRIBE_PLATFORM_EVENTS: + serviceImpl.subscribePlatformEvents((org.dash.platform.dapi.v0.PlatformOuterClass.PlatformSubscriptionRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; default: throw new AssertionError(); } @@ -3731,6 +3815,7 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() { .addMethod(getGetGroupInfosMethod()) .addMethod(getGetGroupActionsMethod()) .addMethod(getGetGroupActionSignersMethod()) + .addMethod(getSubscribePlatformEventsMethod()) .build(); } } diff --git a/packages/dapi-grpc/clients/platform/v0/nodejs/platform_pbjs.js b/packages/dapi-grpc/clients/platform/v0/nodejs/platform_pbjs.js index ff69fee6b12..001f8ee5f45 100644 --- a/packages/dapi-grpc/clients/platform/v0/nodejs/platform_pbjs.js +++ b/packages/dapi-grpc/clients/platform/v0/nodejs/platform_pbjs.js @@ -54,6 +54,2814 @@ $root.org = (function() { */ var v0 = {}; + v0.PlatformSubscriptionRequest = (function() { + + /** + * Properties of a PlatformSubscriptionRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IPlatformSubscriptionRequest + * @property {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0|null} [v0] PlatformSubscriptionRequest v0 + */ + + /** + * Constructs a new PlatformSubscriptionRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a PlatformSubscriptionRequest. + * @implements IPlatformSubscriptionRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest=} [properties] Properties to set + */ + function PlatformSubscriptionRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformSubscriptionRequest v0. + * @member {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @instance + */ + PlatformSubscriptionRequest.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * PlatformSubscriptionRequest version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @instance + */ + Object.defineProperty(PlatformSubscriptionRequest.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PlatformSubscriptionRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} PlatformSubscriptionRequest instance + */ + PlatformSubscriptionRequest.create = function create(properties) { + return new PlatformSubscriptionRequest(properties); + }; + + /** + * Encodes the specified PlatformSubscriptionRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest} message PlatformSubscriptionRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.v0 != null && Object.hasOwnProperty.call(message, "v0")) + $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformSubscriptionRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest} message PlatformSubscriptionRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformSubscriptionRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} PlatformSubscriptionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformSubscriptionRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} PlatformSubscriptionRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformSubscriptionRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformSubscriptionRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.v0 != null && message.hasOwnProperty("v0")) { + properties.version = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a PlatformSubscriptionRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} PlatformSubscriptionRequest + */ + PlatformSubscriptionRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformSubscriptionRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a PlatformSubscriptionRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest} message PlatformSubscriptionRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformSubscriptionRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.v0 != null && message.hasOwnProperty("v0")) { + object.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this PlatformSubscriptionRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @instance + * @returns {Object.} JSON object + */ + PlatformSubscriptionRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 = (function() { + + /** + * Properties of a PlatformSubscriptionRequestV0. + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @interface IPlatformSubscriptionRequestV0 + * @property {org.dash.platform.dapi.v0.IPlatformFilterV0|null} [filter] PlatformSubscriptionRequestV0 filter + * @property {number|null} [keepalive] PlatformSubscriptionRequestV0 keepalive + */ + + /** + * Constructs a new PlatformSubscriptionRequestV0. + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest + * @classdesc Represents a PlatformSubscriptionRequestV0. + * @implements IPlatformSubscriptionRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0=} [properties] Properties to set + */ + function PlatformSubscriptionRequestV0(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformSubscriptionRequestV0 filter. + * @member {org.dash.platform.dapi.v0.IPlatformFilterV0|null|undefined} filter + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @instance + */ + PlatformSubscriptionRequestV0.prototype.filter = null; + + /** + * PlatformSubscriptionRequestV0 keepalive. + * @member {number} keepalive + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @instance + */ + PlatformSubscriptionRequestV0.prototype.keepalive = 0; + + /** + * Creates a new PlatformSubscriptionRequestV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} PlatformSubscriptionRequestV0 instance + */ + PlatformSubscriptionRequestV0.create = function create(properties) { + return new PlatformSubscriptionRequestV0(properties); + }; + + /** + * Encodes the specified PlatformSubscriptionRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0} message PlatformSubscriptionRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionRequestV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) + $root.org.dash.platform.dapi.v0.PlatformFilterV0.encode(message.filter, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.keepalive != null && Object.hasOwnProperty.call(message, "keepalive")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.keepalive); + return writer; + }; + + /** + * Encodes the specified PlatformSubscriptionRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.IPlatformSubscriptionRequestV0} message PlatformSubscriptionRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformSubscriptionRequestV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} PlatformSubscriptionRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionRequestV0.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.filter = $root.org.dash.platform.dapi.v0.PlatformFilterV0.decode(reader, reader.uint32()); + break; + case 2: + message.keepalive = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformSubscriptionRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} PlatformSubscriptionRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformSubscriptionRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformSubscriptionRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.filter != null && message.hasOwnProperty("filter")) { + var error = $root.org.dash.platform.dapi.v0.PlatformFilterV0.verify(message.filter); + if (error) + return "filter." + error; + } + if (message.keepalive != null && message.hasOwnProperty("keepalive")) + if (!$util.isInteger(message.keepalive)) + return "keepalive: integer expected"; + return null; + }; + + /** + * Creates a PlatformSubscriptionRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} PlatformSubscriptionRequestV0 + */ + PlatformSubscriptionRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0(); + if (object.filter != null) { + if (typeof object.filter !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.filter: object expected"); + message.filter = $root.org.dash.platform.dapi.v0.PlatformFilterV0.fromObject(object.filter); + } + if (object.keepalive != null) + message.keepalive = object.keepalive >>> 0; + return message; + }; + + /** + * Creates a plain object from a PlatformSubscriptionRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} message PlatformSubscriptionRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformSubscriptionRequestV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.filter = null; + object.keepalive = 0; + } + if (message.filter != null && message.hasOwnProperty("filter")) + object.filter = $root.org.dash.platform.dapi.v0.PlatformFilterV0.toObject(message.filter, options); + if (message.keepalive != null && message.hasOwnProperty("keepalive")) + object.keepalive = message.keepalive; + return object; + }; + + /** + * Converts this PlatformSubscriptionRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 + * @instance + * @returns {Object.} JSON object + */ + PlatformSubscriptionRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PlatformSubscriptionRequestV0; + })(); + + return PlatformSubscriptionRequest; + })(); + + v0.PlatformSubscriptionResponse = (function() { + + /** + * Properties of a PlatformSubscriptionResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IPlatformSubscriptionResponse + * @property {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0|null} [v0] PlatformSubscriptionResponse v0 + */ + + /** + * Constructs a new PlatformSubscriptionResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a PlatformSubscriptionResponse. + * @implements IPlatformSubscriptionResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionResponse=} [properties] Properties to set + */ + function PlatformSubscriptionResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformSubscriptionResponse v0. + * @member {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @instance + */ + PlatformSubscriptionResponse.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * PlatformSubscriptionResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @instance + */ + Object.defineProperty(PlatformSubscriptionResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PlatformSubscriptionResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} PlatformSubscriptionResponse instance + */ + PlatformSubscriptionResponse.create = function create(properties) { + return new PlatformSubscriptionResponse(properties); + }; + + /** + * Encodes the specified PlatformSubscriptionResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionResponse} message PlatformSubscriptionResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.v0 != null && Object.hasOwnProperty.call(message, "v0")) + $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformSubscriptionResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionResponse} message PlatformSubscriptionResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformSubscriptionResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} PlatformSubscriptionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformSubscriptionResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} PlatformSubscriptionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformSubscriptionResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformSubscriptionResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.v0 != null && message.hasOwnProperty("v0")) { + properties.version = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a PlatformSubscriptionResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} PlatformSubscriptionResponse + */ + PlatformSubscriptionResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformSubscriptionResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a PlatformSubscriptionResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} message PlatformSubscriptionResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformSubscriptionResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.v0 != null && message.hasOwnProperty("v0")) { + object.v0 = $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this PlatformSubscriptionResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @instance + * @returns {Object.} JSON object + */ + PlatformSubscriptionResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 = (function() { + + /** + * Properties of a PlatformSubscriptionResponseV0. + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @interface IPlatformSubscriptionResponseV0 + * @property {number|Long|null} [subscriptionId] PlatformSubscriptionResponseV0 subscriptionId + * @property {org.dash.platform.dapi.v0.IPlatformEventV0|null} [event] PlatformSubscriptionResponseV0 event + */ + + /** + * Constructs a new PlatformSubscriptionResponseV0. + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse + * @classdesc Represents a PlatformSubscriptionResponseV0. + * @implements IPlatformSubscriptionResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0=} [properties] Properties to set + */ + function PlatformSubscriptionResponseV0(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformSubscriptionResponseV0 subscriptionId. + * @member {number|Long} subscriptionId + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @instance + */ + PlatformSubscriptionResponseV0.prototype.subscriptionId = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * PlatformSubscriptionResponseV0 event. + * @member {org.dash.platform.dapi.v0.IPlatformEventV0|null|undefined} event + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @instance + */ + PlatformSubscriptionResponseV0.prototype.event = null; + + /** + * Creates a new PlatformSubscriptionResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} PlatformSubscriptionResponseV0 instance + */ + PlatformSubscriptionResponseV0.create = function create(properties) { + return new PlatformSubscriptionResponseV0(properties); + }; + + /** + * Encodes the specified PlatformSubscriptionResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0} message PlatformSubscriptionResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.subscriptionId != null && Object.hasOwnProperty.call(message, "subscriptionId")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.subscriptionId); + if (message.event != null && Object.hasOwnProperty.call(message, "event")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.encode(message.event, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformSubscriptionResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.IPlatformSubscriptionResponseV0} message PlatformSubscriptionResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformSubscriptionResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformSubscriptionResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} PlatformSubscriptionResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionResponseV0.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.subscriptionId = reader.uint64(); + break; + case 2: + message.event = $root.org.dash.platform.dapi.v0.PlatformEventV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformSubscriptionResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} PlatformSubscriptionResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformSubscriptionResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformSubscriptionResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformSubscriptionResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.subscriptionId != null && message.hasOwnProperty("subscriptionId")) + if (!$util.isInteger(message.subscriptionId) && !(message.subscriptionId && $util.isInteger(message.subscriptionId.low) && $util.isInteger(message.subscriptionId.high))) + return "subscriptionId: integer|Long expected"; + if (message.event != null && message.hasOwnProperty("event")) { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.verify(message.event); + if (error) + return "event." + error; + } + return null; + }; + + /** + * Creates a PlatformSubscriptionResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} PlatformSubscriptionResponseV0 + */ + PlatformSubscriptionResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0(); + if (object.subscriptionId != null) + if ($util.Long) + (message.subscriptionId = $util.Long.fromValue(object.subscriptionId)).unsigned = true; + else if (typeof object.subscriptionId === "string") + message.subscriptionId = parseInt(object.subscriptionId, 10); + else if (typeof object.subscriptionId === "number") + message.subscriptionId = object.subscriptionId; + else if (typeof object.subscriptionId === "object") + message.subscriptionId = new $util.LongBits(object.subscriptionId.low >>> 0, object.subscriptionId.high >>> 0).toNumber(true); + if (object.event != null) { + if (typeof object.event !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.event: object expected"); + message.event = $root.org.dash.platform.dapi.v0.PlatformEventV0.fromObject(object.event); + } + return message; + }; + + /** + * Creates a plain object from a PlatformSubscriptionResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} message PlatformSubscriptionResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformSubscriptionResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.subscriptionId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.subscriptionId = options.longs === String ? "0" : 0; + object.event = null; + } + if (message.subscriptionId != null && message.hasOwnProperty("subscriptionId")) + if (typeof message.subscriptionId === "number") + object.subscriptionId = options.longs === String ? String(message.subscriptionId) : message.subscriptionId; + else + object.subscriptionId = options.longs === String ? $util.Long.prototype.toString.call(message.subscriptionId) : options.longs === Number ? new $util.LongBits(message.subscriptionId.low >>> 0, message.subscriptionId.high >>> 0).toNumber(true) : message.subscriptionId; + if (message.event != null && message.hasOwnProperty("event")) + object.event = $root.org.dash.platform.dapi.v0.PlatformEventV0.toObject(message.event, options); + return object; + }; + + /** + * Converts this PlatformSubscriptionResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 + * @instance + * @returns {Object.} JSON object + */ + PlatformSubscriptionResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PlatformSubscriptionResponseV0; + })(); + + return PlatformSubscriptionResponse; + })(); + + v0.PlatformFilterV0 = (function() { + + /** + * Properties of a PlatformFilterV0. + * @memberof org.dash.platform.dapi.v0 + * @interface IPlatformFilterV0 + * @property {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents|null} [all] PlatformFilterV0 all + * @property {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted|null} [blockCommitted] PlatformFilterV0 blockCommitted + * @property {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter|null} [stateTransitionResult] PlatformFilterV0 stateTransitionResult + */ + + /** + * Constructs a new PlatformFilterV0. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a PlatformFilterV0. + * @implements IPlatformFilterV0 + * @constructor + * @param {org.dash.platform.dapi.v0.IPlatformFilterV0=} [properties] Properties to set + */ + function PlatformFilterV0(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformFilterV0 all. + * @member {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents|null|undefined} all + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + */ + PlatformFilterV0.prototype.all = null; + + /** + * PlatformFilterV0 blockCommitted. + * @member {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted|null|undefined} blockCommitted + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + */ + PlatformFilterV0.prototype.blockCommitted = null; + + /** + * PlatformFilterV0 stateTransitionResult. + * @member {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter|null|undefined} stateTransitionResult + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + */ + PlatformFilterV0.prototype.stateTransitionResult = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * PlatformFilterV0 kind. + * @member {"all"|"blockCommitted"|"stateTransitionResult"|undefined} kind + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + */ + Object.defineProperty(PlatformFilterV0.prototype, "kind", { + get: $util.oneOfGetter($oneOfFields = ["all", "blockCommitted", "stateTransitionResult"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PlatformFilterV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformFilterV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0} PlatformFilterV0 instance + */ + PlatformFilterV0.create = function create(properties) { + return new PlatformFilterV0(properties); + }; + + /** + * Encodes the specified PlatformFilterV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformFilterV0} message PlatformFilterV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformFilterV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.all != null && Object.hasOwnProperty.call(message, "all")) + $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.encode(message.all, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.blockCommitted != null && Object.hasOwnProperty.call(message, "blockCommitted")) + $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.encode(message.blockCommitted, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.stateTransitionResult != null && Object.hasOwnProperty.call(message, "stateTransitionResult")) + $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.encode(message.stateTransitionResult, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformFilterV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformFilterV0} message PlatformFilterV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformFilterV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformFilterV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0} PlatformFilterV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformFilterV0.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.all = $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.decode(reader, reader.uint32()); + break; + case 2: + message.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.decode(reader, reader.uint32()); + break; + case 3: + message.stateTransitionResult = $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformFilterV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0} PlatformFilterV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformFilterV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformFilterV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformFilterV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.all != null && message.hasOwnProperty("all")) { + properties.kind = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.verify(message.all); + if (error) + return "all." + error; + } + } + if (message.blockCommitted != null && message.hasOwnProperty("blockCommitted")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.verify(message.blockCommitted); + if (error) + return "blockCommitted." + error; + } + } + if (message.stateTransitionResult != null && message.hasOwnProperty("stateTransitionResult")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.verify(message.stateTransitionResult); + if (error) + return "stateTransitionResult." + error; + } + } + return null; + }; + + /** + * Creates a PlatformFilterV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0} PlatformFilterV0 + */ + PlatformFilterV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformFilterV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0(); + if (object.all != null) { + if (typeof object.all !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformFilterV0.all: object expected"); + message.all = $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.fromObject(object.all); + } + if (object.blockCommitted != null) { + if (typeof object.blockCommitted !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformFilterV0.blockCommitted: object expected"); + message.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.fromObject(object.blockCommitted); + } + if (object.stateTransitionResult != null) { + if (typeof object.stateTransitionResult !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformFilterV0.stateTransitionResult: object expected"); + message.stateTransitionResult = $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.fromObject(object.stateTransitionResult); + } + return message; + }; + + /** + * Creates a plain object from a PlatformFilterV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0} message PlatformFilterV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformFilterV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.all != null && message.hasOwnProperty("all")) { + object.all = $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.toObject(message.all, options); + if (options.oneofs) + object.kind = "all"; + } + if (message.blockCommitted != null && message.hasOwnProperty("blockCommitted")) { + object.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.toObject(message.blockCommitted, options); + if (options.oneofs) + object.kind = "blockCommitted"; + } + if (message.stateTransitionResult != null && message.hasOwnProperty("stateTransitionResult")) { + object.stateTransitionResult = $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.toObject(message.stateTransitionResult, options); + if (options.oneofs) + object.kind = "stateTransitionResult"; + } + return object; + }; + + /** + * Converts this PlatformFilterV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @instance + * @returns {Object.} JSON object + */ + PlatformFilterV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + PlatformFilterV0.AllEvents = (function() { + + /** + * Properties of an AllEvents. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @interface IAllEvents + */ + + /** + * Constructs a new AllEvents. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @classdesc Represents an AllEvents. + * @implements IAllEvents + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents=} [properties] Properties to set + */ + function AllEvents(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new AllEvents instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} AllEvents instance + */ + AllEvents.create = function create(properties) { + return new AllEvents(properties); + }; + + /** + * Encodes the specified AllEvents message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents} message AllEvents message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AllEvents.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified AllEvents message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IAllEvents} message AllEvents message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AllEvents.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an AllEvents message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} AllEvents + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AllEvents.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an AllEvents message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} AllEvents + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AllEvents.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an AllEvents message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AllEvents.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates an AllEvents message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} AllEvents + */ + AllEvents.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents) + return object; + return new $root.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents(); + }; + + /** + * Creates a plain object from an AllEvents message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} message AllEvents + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AllEvents.toObject = function toObject() { + return {}; + }; + + /** + * Converts this AllEvents to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents + * @instance + * @returns {Object.} JSON object + */ + AllEvents.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return AllEvents; + })(); + + PlatformFilterV0.BlockCommitted = (function() { + + /** + * Properties of a BlockCommitted. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @interface IBlockCommitted + */ + + /** + * Constructs a new BlockCommitted. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @classdesc Represents a BlockCommitted. + * @implements IBlockCommitted + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted=} [properties] Properties to set + */ + function BlockCommitted(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new BlockCommitted instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} BlockCommitted instance + */ + BlockCommitted.create = function create(properties) { + return new BlockCommitted(properties); + }; + + /** + * Encodes the specified BlockCommitted message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted} message BlockCommitted message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockCommitted.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified BlockCommitted message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IBlockCommitted} message BlockCommitted message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockCommitted.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BlockCommitted message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} BlockCommitted + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockCommitted.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BlockCommitted message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} BlockCommitted + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockCommitted.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BlockCommitted message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BlockCommitted.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a BlockCommitted message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} BlockCommitted + */ + BlockCommitted.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted) + return object; + return new $root.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted(); + }; + + /** + * Creates a plain object from a BlockCommitted message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} message BlockCommitted + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BlockCommitted.toObject = function toObject() { + return {}; + }; + + /** + * Converts this BlockCommitted to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted + * @instance + * @returns {Object.} JSON object + */ + BlockCommitted.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BlockCommitted; + })(); + + PlatformFilterV0.StateTransitionResultFilter = (function() { + + /** + * Properties of a StateTransitionResultFilter. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @interface IStateTransitionResultFilter + * @property {Uint8Array|null} [txHash] StateTransitionResultFilter txHash + */ + + /** + * Constructs a new StateTransitionResultFilter. + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0 + * @classdesc Represents a StateTransitionResultFilter. + * @implements IStateTransitionResultFilter + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter=} [properties] Properties to set + */ + function StateTransitionResultFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * StateTransitionResultFilter txHash. + * @member {Uint8Array} txHash + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @instance + */ + StateTransitionResultFilter.prototype.txHash = $util.newBuffer([]); + + /** + * Creates a new StateTransitionResultFilter instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} StateTransitionResultFilter instance + */ + StateTransitionResultFilter.create = function create(properties) { + return new StateTransitionResultFilter(properties); + }; + + /** + * Encodes the specified StateTransitionResultFilter message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter} message StateTransitionResultFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateTransitionResultFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.txHash != null && Object.hasOwnProperty.call(message, "txHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.txHash); + return writer; + }; + + /** + * Encodes the specified StateTransitionResultFilter message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.IStateTransitionResultFilter} message StateTransitionResultFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateTransitionResultFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StateTransitionResultFilter message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} StateTransitionResultFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateTransitionResultFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StateTransitionResultFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} StateTransitionResultFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateTransitionResultFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StateTransitionResultFilter message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StateTransitionResultFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.txHash != null && message.hasOwnProperty("txHash")) + if (!(message.txHash && typeof message.txHash.length === "number" || $util.isString(message.txHash))) + return "txHash: buffer expected"; + return null; + }; + + /** + * Creates a StateTransitionResultFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} StateTransitionResultFilter + */ + StateTransitionResultFilter.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter(); + if (object.txHash != null) + if (typeof object.txHash === "string") + $util.base64.decode(object.txHash, message.txHash = $util.newBuffer($util.base64.length(object.txHash)), 0); + else if (object.txHash.length >= 0) + message.txHash = object.txHash; + return message; + }; + + /** + * Creates a plain object from a StateTransitionResultFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @static + * @param {org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} message StateTransitionResultFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StateTransitionResultFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + if (options.bytes === String) + object.txHash = ""; + else { + object.txHash = []; + if (options.bytes !== Array) + object.txHash = $util.newBuffer(object.txHash); + } + if (message.txHash != null && message.hasOwnProperty("txHash")) + object.txHash = options.bytes === String ? $util.base64.encode(message.txHash, 0, message.txHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.txHash) : message.txHash; + return object; + }; + + /** + * Converts this StateTransitionResultFilter to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter + * @instance + * @returns {Object.} JSON object + */ + StateTransitionResultFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return StateTransitionResultFilter; + })(); + + return PlatformFilterV0; + })(); + + v0.PlatformEventV0 = (function() { + + /** + * Properties of a PlatformEventV0. + * @memberof org.dash.platform.dapi.v0 + * @interface IPlatformEventV0 + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted|null} [blockCommitted] PlatformEventV0 blockCommitted + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized|null} [stateTransitionFinalized] PlatformEventV0 stateTransitionFinalized + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive|null} [keepalive] PlatformEventV0 keepalive + */ + + /** + * Constructs a new PlatformEventV0. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a PlatformEventV0. + * @implements IPlatformEventV0 + * @constructor + * @param {org.dash.platform.dapi.v0.IPlatformEventV0=} [properties] Properties to set + */ + function PlatformEventV0(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlatformEventV0 blockCommitted. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted|null|undefined} blockCommitted + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + */ + PlatformEventV0.prototype.blockCommitted = null; + + /** + * PlatformEventV0 stateTransitionFinalized. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized|null|undefined} stateTransitionFinalized + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + */ + PlatformEventV0.prototype.stateTransitionFinalized = null; + + /** + * PlatformEventV0 keepalive. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive|null|undefined} keepalive + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + */ + PlatformEventV0.prototype.keepalive = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * PlatformEventV0 event. + * @member {"blockCommitted"|"stateTransitionFinalized"|"keepalive"|undefined} event + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + */ + Object.defineProperty(PlatformEventV0.prototype, "event", { + get: $util.oneOfGetter($oneOfFields = ["blockCommitted", "stateTransitionFinalized", "keepalive"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PlatformEventV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformEventV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0} PlatformEventV0 instance + */ + PlatformEventV0.create = function create(properties) { + return new PlatformEventV0(properties); + }; + + /** + * Encodes the specified PlatformEventV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformEventV0} message PlatformEventV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformEventV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.blockCommitted != null && Object.hasOwnProperty.call(message, "blockCommitted")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.encode(message.blockCommitted, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.stateTransitionFinalized != null && Object.hasOwnProperty.call(message, "stateTransitionFinalized")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.encode(message.stateTransitionFinalized, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.keepalive != null && Object.hasOwnProperty.call(message, "keepalive")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.encode(message.keepalive, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlatformEventV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {org.dash.platform.dapi.v0.IPlatformEventV0} message PlatformEventV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlatformEventV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlatformEventV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0} PlatformEventV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformEventV0.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.decode(reader, reader.uint32()); + break; + case 2: + message.stateTransitionFinalized = $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.decode(reader, reader.uint32()); + break; + case 3: + message.keepalive = $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlatformEventV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0} PlatformEventV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlatformEventV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlatformEventV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlatformEventV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.blockCommitted != null && message.hasOwnProperty("blockCommitted")) { + properties.event = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.verify(message.blockCommitted); + if (error) + return "blockCommitted." + error; + } + } + if (message.stateTransitionFinalized != null && message.hasOwnProperty("stateTransitionFinalized")) { + if (properties.event === 1) + return "event: multiple values"; + properties.event = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.verify(message.stateTransitionFinalized); + if (error) + return "stateTransitionFinalized." + error; + } + } + if (message.keepalive != null && message.hasOwnProperty("keepalive")) { + if (properties.event === 1) + return "event: multiple values"; + properties.event = 1; + { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.verify(message.keepalive); + if (error) + return "keepalive." + error; + } + } + return null; + }; + + /** + * Creates a PlatformEventV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0} PlatformEventV0 + */ + PlatformEventV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformEventV0(); + if (object.blockCommitted != null) { + if (typeof object.blockCommitted !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.blockCommitted: object expected"); + message.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.fromObject(object.blockCommitted); + } + if (object.stateTransitionFinalized != null) { + if (typeof object.stateTransitionFinalized !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.stateTransitionFinalized: object expected"); + message.stateTransitionFinalized = $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.fromObject(object.stateTransitionFinalized); + } + if (object.keepalive != null) { + if (typeof object.keepalive !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.keepalive: object expected"); + message.keepalive = $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.fromObject(object.keepalive); + } + return message; + }; + + /** + * Creates a plain object from a PlatformEventV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0} message PlatformEventV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlatformEventV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.blockCommitted != null && message.hasOwnProperty("blockCommitted")) { + object.blockCommitted = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.toObject(message.blockCommitted, options); + if (options.oneofs) + object.event = "blockCommitted"; + } + if (message.stateTransitionFinalized != null && message.hasOwnProperty("stateTransitionFinalized")) { + object.stateTransitionFinalized = $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.toObject(message.stateTransitionFinalized, options); + if (options.oneofs) + object.event = "stateTransitionFinalized"; + } + if (message.keepalive != null && message.hasOwnProperty("keepalive")) { + object.keepalive = $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.toObject(message.keepalive, options); + if (options.oneofs) + object.event = "keepalive"; + } + return object; + }; + + /** + * Converts this PlatformEventV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @instance + * @returns {Object.} JSON object + */ + PlatformEventV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + PlatformEventV0.BlockMetadata = (function() { + + /** + * Properties of a BlockMetadata. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @interface IBlockMetadata + * @property {number|Long|null} [height] BlockMetadata height + * @property {number|Long|null} [timeMs] BlockMetadata timeMs + * @property {Uint8Array|null} [blockIdHash] BlockMetadata blockIdHash + */ + + /** + * Constructs a new BlockMetadata. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @classdesc Represents a BlockMetadata. + * @implements IBlockMetadata + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata=} [properties] Properties to set + */ + function BlockMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BlockMetadata height. + * @member {number|Long} height + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @instance + */ + BlockMetadata.prototype.height = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * BlockMetadata timeMs. + * @member {number|Long} timeMs + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @instance + */ + BlockMetadata.prototype.timeMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * BlockMetadata blockIdHash. + * @member {Uint8Array} blockIdHash + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @instance + */ + BlockMetadata.prototype.blockIdHash = $util.newBuffer([]); + + /** + * Creates a new BlockMetadata instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} BlockMetadata instance + */ + BlockMetadata.create = function create(properties) { + return new BlockMetadata(properties); + }; + + /** + * Encodes the specified BlockMetadata message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata} message BlockMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.height != null && Object.hasOwnProperty.call(message, "height")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.height); + if (message.timeMs != null && Object.hasOwnProperty.call(message, "timeMs")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.timeMs); + if (message.blockIdHash != null && Object.hasOwnProperty.call(message, "blockIdHash")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.blockIdHash); + return writer; + }; + + /** + * Encodes the specified BlockMetadata message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata} message BlockMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BlockMetadata message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} BlockMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.uint64(); + break; + case 2: + message.timeMs = reader.uint64(); + break; + case 3: + message.blockIdHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BlockMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} BlockMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BlockMetadata message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BlockMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.height != null && message.hasOwnProperty("height")) + if (!$util.isInteger(message.height) && !(message.height && $util.isInteger(message.height.low) && $util.isInteger(message.height.high))) + return "height: integer|Long expected"; + if (message.timeMs != null && message.hasOwnProperty("timeMs")) + if (!$util.isInteger(message.timeMs) && !(message.timeMs && $util.isInteger(message.timeMs.low) && $util.isInteger(message.timeMs.high))) + return "timeMs: integer|Long expected"; + if (message.blockIdHash != null && message.hasOwnProperty("blockIdHash")) + if (!(message.blockIdHash && typeof message.blockIdHash.length === "number" || $util.isString(message.blockIdHash))) + return "blockIdHash: buffer expected"; + return null; + }; + + /** + * Creates a BlockMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} BlockMetadata + */ + BlockMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata(); + if (object.height != null) + if ($util.Long) + (message.height = $util.Long.fromValue(object.height)).unsigned = true; + else if (typeof object.height === "string") + message.height = parseInt(object.height, 10); + else if (typeof object.height === "number") + message.height = object.height; + else if (typeof object.height === "object") + message.height = new $util.LongBits(object.height.low >>> 0, object.height.high >>> 0).toNumber(true); + if (object.timeMs != null) + if ($util.Long) + (message.timeMs = $util.Long.fromValue(object.timeMs)).unsigned = true; + else if (typeof object.timeMs === "string") + message.timeMs = parseInt(object.timeMs, 10); + else if (typeof object.timeMs === "number") + message.timeMs = object.timeMs; + else if (typeof object.timeMs === "object") + message.timeMs = new $util.LongBits(object.timeMs.low >>> 0, object.timeMs.high >>> 0).toNumber(true); + if (object.blockIdHash != null) + if (typeof object.blockIdHash === "string") + $util.base64.decode(object.blockIdHash, message.blockIdHash = $util.newBuffer($util.base64.length(object.blockIdHash)), 0); + else if (object.blockIdHash.length >= 0) + message.blockIdHash = object.blockIdHash; + return message; + }; + + /** + * Creates a plain object from a BlockMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} message BlockMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BlockMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.height = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.height = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.timeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.timeMs = options.longs === String ? "0" : 0; + if (options.bytes === String) + object.blockIdHash = ""; + else { + object.blockIdHash = []; + if (options.bytes !== Array) + object.blockIdHash = $util.newBuffer(object.blockIdHash); + } + } + if (message.height != null && message.hasOwnProperty("height")) + if (typeof message.height === "number") + object.height = options.longs === String ? String(message.height) : message.height; + else + object.height = options.longs === String ? $util.Long.prototype.toString.call(message.height) : options.longs === Number ? new $util.LongBits(message.height.low >>> 0, message.height.high >>> 0).toNumber(true) : message.height; + if (message.timeMs != null && message.hasOwnProperty("timeMs")) + if (typeof message.timeMs === "number") + object.timeMs = options.longs === String ? String(message.timeMs) : message.timeMs; + else + object.timeMs = options.longs === String ? $util.Long.prototype.toString.call(message.timeMs) : options.longs === Number ? new $util.LongBits(message.timeMs.low >>> 0, message.timeMs.high >>> 0).toNumber(true) : message.timeMs; + if (message.blockIdHash != null && message.hasOwnProperty("blockIdHash")) + object.blockIdHash = options.bytes === String ? $util.base64.encode(message.blockIdHash, 0, message.blockIdHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.blockIdHash) : message.blockIdHash; + return object; + }; + + /** + * Converts this BlockMetadata to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata + * @instance + * @returns {Object.} JSON object + */ + BlockMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BlockMetadata; + })(); + + PlatformEventV0.BlockCommitted = (function() { + + /** + * Properties of a BlockCommitted. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @interface IBlockCommitted + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata|null} [meta] BlockCommitted meta + * @property {number|null} [txCount] BlockCommitted txCount + */ + + /** + * Constructs a new BlockCommitted. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @classdesc Represents a BlockCommitted. + * @implements IBlockCommitted + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted=} [properties] Properties to set + */ + function BlockCommitted(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BlockCommitted meta. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata|null|undefined} meta + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @instance + */ + BlockCommitted.prototype.meta = null; + + /** + * BlockCommitted txCount. + * @member {number} txCount + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @instance + */ + BlockCommitted.prototype.txCount = 0; + + /** + * Creates a new BlockCommitted instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} BlockCommitted instance + */ + BlockCommitted.create = function create(properties) { + return new BlockCommitted(properties); + }; + + /** + * Encodes the specified BlockCommitted message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted} message BlockCommitted message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockCommitted.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.meta != null && Object.hasOwnProperty.call(message, "meta")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.encode(message.meta, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.txCount != null && Object.hasOwnProperty.call(message, "txCount")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.txCount); + return writer; + }; + + /** + * Encodes the specified BlockCommitted message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IBlockCommitted} message BlockCommitted message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlockCommitted.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BlockCommitted message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} BlockCommitted + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockCommitted.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.decode(reader, reader.uint32()); + break; + case 2: + message.txCount = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BlockCommitted message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} BlockCommitted + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlockCommitted.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BlockCommitted message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BlockCommitted.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.meta != null && message.hasOwnProperty("meta")) { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.verify(message.meta); + if (error) + return "meta." + error; + } + if (message.txCount != null && message.hasOwnProperty("txCount")) + if (!$util.isInteger(message.txCount)) + return "txCount: integer expected"; + return null; + }; + + /** + * Creates a BlockCommitted message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} BlockCommitted + */ + BlockCommitted.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted(); + if (object.meta != null) { + if (typeof object.meta !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.meta: object expected"); + message.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.fromObject(object.meta); + } + if (object.txCount != null) + message.txCount = object.txCount >>> 0; + return message; + }; + + /** + * Creates a plain object from a BlockCommitted message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} message BlockCommitted + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BlockCommitted.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.meta = null; + object.txCount = 0; + } + if (message.meta != null && message.hasOwnProperty("meta")) + object.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(message.meta, options); + if (message.txCount != null && message.hasOwnProperty("txCount")) + object.txCount = message.txCount; + return object; + }; + + /** + * Converts this BlockCommitted to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted + * @instance + * @returns {Object.} JSON object + */ + BlockCommitted.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BlockCommitted; + })(); + + PlatformEventV0.StateTransitionFinalized = (function() { + + /** + * Properties of a StateTransitionFinalized. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @interface IStateTransitionFinalized + * @property {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata|null} [meta] StateTransitionFinalized meta + * @property {Uint8Array|null} [txHash] StateTransitionFinalized txHash + */ + + /** + * Constructs a new StateTransitionFinalized. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @classdesc Represents a StateTransitionFinalized. + * @implements IStateTransitionFinalized + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized=} [properties] Properties to set + */ + function StateTransitionFinalized(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * StateTransitionFinalized meta. + * @member {org.dash.platform.dapi.v0.PlatformEventV0.IBlockMetadata|null|undefined} meta + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @instance + */ + StateTransitionFinalized.prototype.meta = null; + + /** + * StateTransitionFinalized txHash. + * @member {Uint8Array} txHash + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @instance + */ + StateTransitionFinalized.prototype.txHash = $util.newBuffer([]); + + /** + * Creates a new StateTransitionFinalized instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} StateTransitionFinalized instance + */ + StateTransitionFinalized.create = function create(properties) { + return new StateTransitionFinalized(properties); + }; + + /** + * Encodes the specified StateTransitionFinalized message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized} message StateTransitionFinalized message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateTransitionFinalized.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.meta != null && Object.hasOwnProperty.call(message, "meta")) + $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.encode(message.meta, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.txHash != null && Object.hasOwnProperty.call(message, "txHash")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.txHash); + return writer; + }; + + /** + * Encodes the specified StateTransitionFinalized message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IStateTransitionFinalized} message StateTransitionFinalized message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateTransitionFinalized.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StateTransitionFinalized message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} StateTransitionFinalized + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateTransitionFinalized.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.decode(reader, reader.uint32()); + break; + case 2: + message.txHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StateTransitionFinalized message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} StateTransitionFinalized + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateTransitionFinalized.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StateTransitionFinalized message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StateTransitionFinalized.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.meta != null && message.hasOwnProperty("meta")) { + var error = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.verify(message.meta); + if (error) + return "meta." + error; + } + if (message.txHash != null && message.hasOwnProperty("txHash")) + if (!(message.txHash && typeof message.txHash.length === "number" || $util.isString(message.txHash))) + return "txHash: buffer expected"; + return null; + }; + + /** + * Creates a StateTransitionFinalized message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} StateTransitionFinalized + */ + StateTransitionFinalized.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized) + return object; + var message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized(); + if (object.meta != null) { + if (typeof object.meta !== "object") + throw TypeError(".org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.meta: object expected"); + message.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.fromObject(object.meta); + } + if (object.txHash != null) + if (typeof object.txHash === "string") + $util.base64.decode(object.txHash, message.txHash = $util.newBuffer($util.base64.length(object.txHash)), 0); + else if (object.txHash.length >= 0) + message.txHash = object.txHash; + return message; + }; + + /** + * Creates a plain object from a StateTransitionFinalized message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} message StateTransitionFinalized + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StateTransitionFinalized.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.meta = null; + if (options.bytes === String) + object.txHash = ""; + else { + object.txHash = []; + if (options.bytes !== Array) + object.txHash = $util.newBuffer(object.txHash); + } + } + if (message.meta != null && message.hasOwnProperty("meta")) + object.meta = $root.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(message.meta, options); + if (message.txHash != null && message.hasOwnProperty("txHash")) + object.txHash = options.bytes === String ? $util.base64.encode(message.txHash, 0, message.txHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.txHash) : message.txHash; + return object; + }; + + /** + * Converts this StateTransitionFinalized to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized + * @instance + * @returns {Object.} JSON object + */ + StateTransitionFinalized.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return StateTransitionFinalized; + })(); + + PlatformEventV0.Keepalive = (function() { + + /** + * Properties of a Keepalive. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @interface IKeepalive + */ + + /** + * Constructs a new Keepalive. + * @memberof org.dash.platform.dapi.v0.PlatformEventV0 + * @classdesc Represents a Keepalive. + * @implements IKeepalive + * @constructor + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive=} [properties] Properties to set + */ + function Keepalive(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new Keepalive instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} Keepalive instance + */ + Keepalive.create = function create(properties) { + return new Keepalive(properties); + }; + + /** + * Encodes the specified Keepalive message. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive} message Keepalive message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Keepalive.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified Keepalive message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.IKeepalive} message Keepalive message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Keepalive.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Keepalive message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} Keepalive + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Keepalive.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Keepalive message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} Keepalive + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Keepalive.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Keepalive message. + * @function verify + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Keepalive.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a Keepalive message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} Keepalive + */ + Keepalive.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive) + return object; + return new $root.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive(); + }; + + /** + * Creates a plain object from a Keepalive message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @static + * @param {org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} message Keepalive + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Keepalive.toObject = function toObject() { + return {}; + }; + + /** + * Converts this Keepalive to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.PlatformEventV0.Keepalive + * @instance + * @returns {Object.} JSON object + */ + Keepalive.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Keepalive; + })(); + + return PlatformEventV0; + })(); + v0.Platform = (function() { /** @@ -1637,6 +4445,39 @@ $root.org = (function() { * @variation 2 */ + /** + * Callback as used by {@link org.dash.platform.dapi.v0.Platform#subscribePlatformEvents}. + * @memberof org.dash.platform.dapi.v0.Platform + * @typedef subscribePlatformEventsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {org.dash.platform.dapi.v0.PlatformSubscriptionResponse} [response] PlatformSubscriptionResponse + */ + + /** + * Calls subscribePlatformEvents. + * @function subscribePlatformEvents + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest} request PlatformSubscriptionRequest message or plain object + * @param {org.dash.platform.dapi.v0.Platform.subscribePlatformEventsCallback} callback Node-style callback called with the error, if any, and PlatformSubscriptionResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Platform.prototype.subscribePlatformEvents = function subscribePlatformEvents(request, callback) { + return this.rpcCall(subscribePlatformEvents, $root.org.dash.platform.dapi.v0.PlatformSubscriptionRequest, $root.org.dash.platform.dapi.v0.PlatformSubscriptionResponse, request, callback); + }, "name", { value: "subscribePlatformEvents" }); + + /** + * Calls subscribePlatformEvents. + * @function subscribePlatformEvents + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IPlatformSubscriptionRequest} request PlatformSubscriptionRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return Platform; })(); diff --git a/packages/dapi-grpc/clients/platform/v0/nodejs/platform_protoc.js b/packages/dapi-grpc/clients/platform/v0/nodejs/platform_protoc.js index dad5a352c41..7db02826598 100644 --- a/packages/dapi-grpc/clients/platform/v0/nodejs/platform_protoc.js +++ b/packages/dapi-grpc/clients/platform/v0/nodejs/platform_protoc.js @@ -460,6 +460,23 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse goog.exportSymbol('proto.org.dash.platform.dapi.v0.KeyPurpose', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.KeyRequestType', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.KeyRequestType.RequestCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.EventCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0.KindCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.Proof', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.ResponseMetadata', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.SearchKey', null, { proto }); @@ -474,6 +491,279 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultR goog.exportSymbol('proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase', null, { proto }); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.displayName = 'proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.displayName = 'proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformFilterV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformFilterV0.displayName = 'proto.org.dash.platform.dapi.v0.PlatformFilterV0'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.displayName = 'proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.displayName = 'proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.displayName = 'proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -6817,6 +7107,2355 @@ if (goog.DEBUG && !COMPILED) { proto.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSigners.displayName = 'proto.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSigners'; } +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest; + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + filter: (f = msg.getFilter()) && proto.org.dash.platform.dapi.v0.PlatformFilterV0.toObject(includeInstance, f), + keepalive: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0; + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformFilterV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformFilterV0.deserializeBinaryFromReader); + msg.setFilter(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setKeepalive(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getFilter(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformFilterV0.serializeBinaryToWriter + ); + } + f = message.getKeepalive(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } +}; + + +/** + * optional PlatformFilterV0 filter = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformFilterV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.getFilter = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformFilterV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformFilterV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.setFilter = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.clearFilter = function() { + return this.setFilter(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.hasFilter = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional uint32 keepalive = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.getKeepalive = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.setKeepalive = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional PlatformSubscriptionRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse; + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + subscriptionId: jspb.Message.getFieldWithDefault(msg, 1, 0), + event: (f = msg.getEvent()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0; + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSubscriptionId(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.deserializeBinaryFromReader); + msg.setEvent(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getSubscriptionId(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getEvent(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 subscription_id = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.getSubscriptionId = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.setSubscriptionId = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional PlatformEventV0 event = 2; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.getEvent = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.setEvent = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.clearEvent = function() { + return this.setEvent(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.hasEvent = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional PlatformSubscriptionResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_ = [[1,2,3]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.KindCase = { + KIND_NOT_SET: 0, + ALL: 1, + BLOCK_COMMITTED: 2, + STATE_TRANSITION_RESULT: 3 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.PlatformFilterV0.KindCase} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.getKindCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.PlatformFilterV0.KindCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.toObject = function(includeInstance, msg) { + var f, obj = { + all: (f = msg.getAll()) && proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.toObject(includeInstance, f), + blockCommitted: (f = msg.getBlockCommitted()) && proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.toObject(includeInstance, f), + stateTransitionResult: (f = msg.getStateTransitionResult()) && proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformFilterV0; + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.deserializeBinaryFromReader); + msg.setAll(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.deserializeBinaryFromReader); + msg.setBlockCommitted(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.deserializeBinaryFromReader); + msg.setStateTransitionResult(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformFilterV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAll(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.serializeBinaryToWriter + ); + } + f = message.getBlockCommitted(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.serializeBinaryToWriter + ); + } + f = message.getStateTransitionResult(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents; + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted; + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.toObject = function(includeInstance, msg) { + var f, obj = { + txHash: msg.getTxHash_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter; + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setTxHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeBytes( + 1, + f + ); + } +}; + + +/** + * optional bytes tx_hash = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.getTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes tx_hash = 1; + * This is a type-conversion wrapper around `getTxHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.getTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getTxHash())); +}; + + +/** + * optional bytes tx_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getTxHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.getTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getTxHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.setTxHash = function(value) { + return jspb.Message.setField(this, 1, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.clearTxHash = function() { + return jspb.Message.setField(this, 1, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.hasTxHash = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional AllEvents all = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.getAll = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.setAll = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.clearAll = function() { + return this.setAll(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.hasAll = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional BlockCommitted block_committed = 2; + * @return {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.getBlockCommitted = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.setBlockCommitted = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.clearBlockCommitted = function() { + return this.setBlockCommitted(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.hasBlockCommitted = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional StateTransitionResultFilter state_transition_result = 3; + * @return {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.getStateTransitionResult = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.setStateTransitionResult = function(value) { + return jspb.Message.setOneofWrapperField(this, 3, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.clearStateTransitionResult = function() { + return this.setStateTransitionResult(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.hasStateTransitionResult = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_ = [[1,2,3]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.EventCase = { + EVENT_NOT_SET: 0, + BLOCK_COMMITTED: 1, + STATE_TRANSITION_FINALIZED: 2, + KEEPALIVE: 3 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.PlatformEventV0.EventCase} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.getEventCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.PlatformEventV0.EventCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.toObject = function(includeInstance, msg) { + var f, obj = { + blockCommitted: (f = msg.getBlockCommitted()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.toObject(includeInstance, f), + stateTransitionFinalized: (f = msg.getStateTransitionFinalized()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.toObject(includeInstance, f), + keepalive: (f = msg.getKeepalive()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.deserializeBinaryFromReader); + msg.setBlockCommitted(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.deserializeBinaryFromReader); + msg.setStateTransitionFinalized(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.deserializeBinaryFromReader); + msg.setKeepalive(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getBlockCommitted(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.serializeBinaryToWriter + ); + } + f = message.getStateTransitionFinalized(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.serializeBinaryToWriter + ); + } + f = message.getKeepalive(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject = function(includeInstance, msg) { + var f, obj = { + height: jspb.Message.getFieldWithDefault(msg, 1, "0"), + timeMs: jspb.Message.getFieldWithDefault(msg, 2, "0"), + blockIdHash: msg.getBlockIdHash_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readUint64String()); + msg.setHeight(value); + break; + case 2: + var value = /** @type {string} */ (reader.readUint64String()); + msg.setTimeMs(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setBlockIdHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getHeight(); + if (parseInt(f, 10) !== 0) { + writer.writeUint64String( + 1, + f + ); + } + f = message.getTimeMs(); + if (parseInt(f, 10) !== 0) { + writer.writeUint64String( + 2, + f + ); + } + f = message.getBlockIdHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 3, + f + ); + } +}; + + +/** + * optional uint64 height = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getHeight = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.setHeight = function(value) { + return jspb.Message.setProto3StringIntField(this, 1, value); +}; + + +/** + * optional uint64 time_ms = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getTimeMs = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.setTimeMs = function(value) { + return jspb.Message.setProto3StringIntField(this, 2, value); +}; + + +/** + * optional bytes block_id_hash = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getBlockIdHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * optional bytes block_id_hash = 3; + * This is a type-conversion wrapper around `getBlockIdHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getBlockIdHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getBlockIdHash())); +}; + + +/** + * optional bytes block_id_hash = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getBlockIdHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getBlockIdHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getBlockIdHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.setBlockIdHash = function(value) { + return jspb.Message.setProto3BytesField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.toObject = function(includeInstance, msg) { + var f, obj = { + meta: (f = msg.getMeta()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(includeInstance, f), + txCount: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinaryFromReader); + msg.setMeta(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setTxCount(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getMeta(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.serializeBinaryToWriter + ); + } + f = message.getTxCount(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } +}; + + +/** + * optional BlockMetadata meta = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.getMeta = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.setMeta = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.clearMeta = function() { + return this.setMeta(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.hasMeta = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional uint32 tx_count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.getTxCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.setTxCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.toObject = function(includeInstance, msg) { + var f, obj = { + meta: (f = msg.getMeta()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(includeInstance, f), + txHash: msg.getTxHash_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinaryFromReader); + msg.setMeta(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setTxHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getMeta(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.serializeBinaryToWriter + ); + } + f = message.getTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } +}; + + +/** + * optional BlockMetadata meta = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.getMeta = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.setMeta = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.clearMeta = function() { + return this.setMeta(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.hasMeta = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional bytes tx_hash = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.getTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes tx_hash = 2; + * This is a type-conversion wrapper around `getTxHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.getTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getTxHash())); +}; + + +/** + * optional bytes tx_hash = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getTxHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.getTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getTxHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.setTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + +/** + * optional BlockCommitted block_committed = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.getBlockCommitted = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.setBlockCommitted = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.clearBlockCommitted = function() { + return this.setBlockCommitted(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.hasBlockCommitted = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional StateTransitionFinalized state_transition_finalized = 2; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.getStateTransitionFinalized = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.setStateTransitionFinalized = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.clearStateTransitionFinalized = function() { + return this.setStateTransitionFinalized(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.hasStateTransitionFinalized = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional Keepalive keepalive = 3; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.getKeepalive = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.setKeepalive = function(value) { + return jspb.Message.setOneofWrapperField(this, 3, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.clearKeepalive = function() { + return this.setKeepalive(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.hasKeepalive = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + if (jspb.Message.GENERATE_TO_OBJECT) { diff --git a/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbobjc.h b/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbobjc.h index 14d0ddb3fec..4c0cc00ef49 100644 --- a/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbobjc.h +++ b/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbobjc.h @@ -228,6 +228,17 @@ CF_EXTERN_C_BEGIN @class GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp; @class GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps; @class KeyRequestType; +@class PlatformEventV0; +@class PlatformEventV0_BlockCommitted; +@class PlatformEventV0_BlockMetadata; +@class PlatformEventV0_Keepalive; +@class PlatformEventV0_StateTransitionFinalized; +@class PlatformFilterV0; +@class PlatformFilterV0_AllEvents; +@class PlatformFilterV0_BlockCommitted; +@class PlatformFilterV0_StateTransitionResultFilter; +@class PlatformSubscriptionRequest_PlatformSubscriptionRequestV0; +@class PlatformSubscriptionResponse_PlatformSubscriptionResponseV0; @class Proof; @class ResponseMetadata; @class SearchKey; @@ -441,6 +452,261 @@ BOOL GetGroupActionSignersRequest_ActionStatus_IsValidValue(int32_t value); GPB_FINAL @interface PlatformRoot : GPBRootObject @end +#pragma mark - PlatformSubscriptionRequest + +typedef GPB_ENUM(PlatformSubscriptionRequest_FieldNumber) { + PlatformSubscriptionRequest_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(PlatformSubscriptionRequest_Version_OneOfCase) { + PlatformSubscriptionRequest_Version_OneOfCase_GPBUnsetOneOfCase = 0, + PlatformSubscriptionRequest_Version_OneOfCase_V0 = 1, +}; + +/** + * Platform events subscription (v0) + **/ +GPB_FINAL @interface PlatformSubscriptionRequest : GPBMessage + +@property(nonatomic, readonly) PlatformSubscriptionRequest_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) PlatformSubscriptionRequest_PlatformSubscriptionRequestV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void PlatformSubscriptionRequest_ClearVersionOneOfCase(PlatformSubscriptionRequest *message); + +#pragma mark - PlatformSubscriptionRequest_PlatformSubscriptionRequestV0 + +typedef GPB_ENUM(PlatformSubscriptionRequest_PlatformSubscriptionRequestV0_FieldNumber) { + PlatformSubscriptionRequest_PlatformSubscriptionRequestV0_FieldNumber_Filter = 1, + PlatformSubscriptionRequest_PlatformSubscriptionRequestV0_FieldNumber_Keepalive = 2, +}; + +GPB_FINAL @interface PlatformSubscriptionRequest_PlatformSubscriptionRequestV0 : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) PlatformFilterV0 *filter; +/** Test to see if @c filter has been set. */ +@property(nonatomic, readwrite) BOOL hasFilter; + +/** + * Interval in seconds between keepalive events (min 25, max 300, 0 disables + * keepalive). + **/ +@property(nonatomic, readwrite) uint32_t keepalive; + +@end + +#pragma mark - PlatformSubscriptionResponse + +typedef GPB_ENUM(PlatformSubscriptionResponse_FieldNumber) { + PlatformSubscriptionResponse_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(PlatformSubscriptionResponse_Version_OneOfCase) { + PlatformSubscriptionResponse_Version_OneOfCase_GPBUnsetOneOfCase = 0, + PlatformSubscriptionResponse_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface PlatformSubscriptionResponse : GPBMessage + +@property(nonatomic, readonly) PlatformSubscriptionResponse_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) PlatformSubscriptionResponse_PlatformSubscriptionResponseV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void PlatformSubscriptionResponse_ClearVersionOneOfCase(PlatformSubscriptionResponse *message); + +#pragma mark - PlatformSubscriptionResponse_PlatformSubscriptionResponseV0 + +typedef GPB_ENUM(PlatformSubscriptionResponse_PlatformSubscriptionResponseV0_FieldNumber) { + PlatformSubscriptionResponse_PlatformSubscriptionResponseV0_FieldNumber_SubscriptionId = 1, + PlatformSubscriptionResponse_PlatformSubscriptionResponseV0_FieldNumber_Event = 2, +}; + +GPB_FINAL @interface PlatformSubscriptionResponse_PlatformSubscriptionResponseV0 : GPBMessage + +/** Server-generated ID for this subscription; not guaranteed to be unique */ +@property(nonatomic, readwrite) uint64_t subscriptionId; + +/** Event details; can be nil/None, eg. during handshake */ +@property(nonatomic, readwrite, strong, null_resettable) PlatformEventV0 *event; +/** Test to see if @c event has been set. */ +@property(nonatomic, readwrite) BOOL hasEvent; + +@end + +#pragma mark - PlatformFilterV0 + +typedef GPB_ENUM(PlatformFilterV0_FieldNumber) { + PlatformFilterV0_FieldNumber_All = 1, + PlatformFilterV0_FieldNumber_BlockCommitted = 2, + PlatformFilterV0_FieldNumber_StateTransitionResult = 3, +}; + +typedef GPB_ENUM(PlatformFilterV0_Kind_OneOfCase) { + PlatformFilterV0_Kind_OneOfCase_GPBUnsetOneOfCase = 0, + PlatformFilterV0_Kind_OneOfCase_All = 1, + PlatformFilterV0_Kind_OneOfCase_BlockCommitted = 2, + PlatformFilterV0_Kind_OneOfCase_StateTransitionResult = 3, +}; + +/** + * Criteria that must be met by platform event to be propagated to the user. + **/ +GPB_FINAL @interface PlatformFilterV0 : GPBMessage + +@property(nonatomic, readonly) PlatformFilterV0_Kind_OneOfCase kindOneOfCase; + +/** subscribe to all platform events */ +@property(nonatomic, readwrite, strong, null_resettable) PlatformFilterV0_AllEvents *all; + +/** subscribe to BlockCommitted events only */ +@property(nonatomic, readwrite, strong, null_resettable) PlatformFilterV0_BlockCommitted *blockCommitted; + +/** subscribe to StateTransitionResult events (optionally filtered by */ +@property(nonatomic, readwrite, strong, null_resettable) PlatformFilterV0_StateTransitionResultFilter *stateTransitionResult; + +@end + +/** + * Clears whatever value was set for the oneof 'kind'. + **/ +void PlatformFilterV0_ClearKindOneOfCase(PlatformFilterV0 *message); + +#pragma mark - PlatformFilterV0_AllEvents + +/** + * Include all events generated by the Platform; experimental + **/ +GPB_FINAL @interface PlatformFilterV0_AllEvents : GPBMessage + +@end + +#pragma mark - PlatformFilterV0_BlockCommitted + +/** + * Notify about every Platform (Tenderdash) block that gets committed (mined) + **/ +GPB_FINAL @interface PlatformFilterV0_BlockCommitted : GPBMessage + +@end + +#pragma mark - PlatformFilterV0_StateTransitionResultFilter + +typedef GPB_ENUM(PlatformFilterV0_StateTransitionResultFilter_FieldNumber) { + PlatformFilterV0_StateTransitionResultFilter_FieldNumber_TxHash = 1, +}; + +/** + * Filter for StateTransitionResult events, by state transition hash + **/ +GPB_FINAL @interface PlatformFilterV0_StateTransitionResultFilter : GPBMessage + +/** When set, only match StateTransitionResult events for this tx hash. */ +@property(nonatomic, readwrite, copy, null_resettable) NSData *txHash; +/** Test to see if @c txHash has been set. */ +@property(nonatomic, readwrite) BOOL hasTxHash; + +@end + +#pragma mark - PlatformEventV0 + +typedef GPB_ENUM(PlatformEventV0_FieldNumber) { + PlatformEventV0_FieldNumber_BlockCommitted = 1, + PlatformEventV0_FieldNumber_StateTransitionFinalized = 2, + PlatformEventV0_FieldNumber_Keepalive = 3, +}; + +typedef GPB_ENUM(PlatformEventV0_Event_OneOfCase) { + PlatformEventV0_Event_OneOfCase_GPBUnsetOneOfCase = 0, + PlatformEventV0_Event_OneOfCase_BlockCommitted = 1, + PlatformEventV0_Event_OneOfCase_StateTransitionFinalized = 2, + PlatformEventV0_Event_OneOfCase_Keepalive = 3, +}; + +GPB_FINAL @interface PlatformEventV0 : GPBMessage + +@property(nonatomic, readonly) PlatformEventV0_Event_OneOfCase eventOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) PlatformEventV0_BlockCommitted *blockCommitted; + +@property(nonatomic, readwrite, strong, null_resettable) PlatformEventV0_StateTransitionFinalized *stateTransitionFinalized; + +@property(nonatomic, readwrite, strong, null_resettable) PlatformEventV0_Keepalive *keepalive; + +@end + +/** + * Clears whatever value was set for the oneof 'event'. + **/ +void PlatformEventV0_ClearEventOneOfCase(PlatformEventV0 *message); + +#pragma mark - PlatformEventV0_BlockMetadata + +typedef GPB_ENUM(PlatformEventV0_BlockMetadata_FieldNumber) { + PlatformEventV0_BlockMetadata_FieldNumber_Height = 1, + PlatformEventV0_BlockMetadata_FieldNumber_TimeMs = 2, + PlatformEventV0_BlockMetadata_FieldNumber_BlockIdHash = 3, +}; + +GPB_FINAL @interface PlatformEventV0_BlockMetadata : GPBMessage + +@property(nonatomic, readwrite) uint64_t height; + +@property(nonatomic, readwrite) uint64_t timeMs; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *blockIdHash; + +@end + +#pragma mark - PlatformEventV0_BlockCommitted + +typedef GPB_ENUM(PlatformEventV0_BlockCommitted_FieldNumber) { + PlatformEventV0_BlockCommitted_FieldNumber_Meta = 1, + PlatformEventV0_BlockCommitted_FieldNumber_TxCount = 2, +}; + +GPB_FINAL @interface PlatformEventV0_BlockCommitted : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) PlatformEventV0_BlockMetadata *meta; +/** Test to see if @c meta has been set. */ +@property(nonatomic, readwrite) BOOL hasMeta; + +@property(nonatomic, readwrite) uint32_t txCount; + +@end + +#pragma mark - PlatformEventV0_StateTransitionFinalized + +typedef GPB_ENUM(PlatformEventV0_StateTransitionFinalized_FieldNumber) { + PlatformEventV0_StateTransitionFinalized_FieldNumber_Meta = 1, + PlatformEventV0_StateTransitionFinalized_FieldNumber_TxHash = 2, +}; + +GPB_FINAL @interface PlatformEventV0_StateTransitionFinalized : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) PlatformEventV0_BlockMetadata *meta; +/** Test to see if @c meta has been set. */ +@property(nonatomic, readwrite) BOOL hasMeta; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *txHash; + +@end + +#pragma mark - PlatformEventV0_Keepalive + +GPB_FINAL @interface PlatformEventV0_Keepalive : GPBMessage + +@end + #pragma mark - Proof typedef GPB_ENUM(Proof_FieldNumber) { diff --git a/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbobjc.m b/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbobjc.m index 5ca9c2194c7..e787e4b4637 100644 --- a/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbobjc.m +++ b/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbobjc.m @@ -317,6 +317,19 @@ GPBObjCClassDeclaration(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp); GPBObjCClassDeclaration(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps); GPBObjCClassDeclaration(KeyRequestType); +GPBObjCClassDeclaration(PlatformEventV0); +GPBObjCClassDeclaration(PlatformEventV0_BlockCommitted); +GPBObjCClassDeclaration(PlatformEventV0_BlockMetadata); +GPBObjCClassDeclaration(PlatformEventV0_Keepalive); +GPBObjCClassDeclaration(PlatformEventV0_StateTransitionFinalized); +GPBObjCClassDeclaration(PlatformFilterV0); +GPBObjCClassDeclaration(PlatformFilterV0_AllEvents); +GPBObjCClassDeclaration(PlatformFilterV0_BlockCommitted); +GPBObjCClassDeclaration(PlatformFilterV0_StateTransitionResultFilter); +GPBObjCClassDeclaration(PlatformSubscriptionRequest); +GPBObjCClassDeclaration(PlatformSubscriptionRequest_PlatformSubscriptionRequestV0); +GPBObjCClassDeclaration(PlatformSubscriptionResponse); +GPBObjCClassDeclaration(PlatformSubscriptionResponse_PlatformSubscriptionResponseV0); GPBObjCClassDeclaration(Proof); GPBObjCClassDeclaration(ResponseMetadata); GPBObjCClassDeclaration(SearchKey); @@ -393,6 +406,719 @@ BOOL KeyPurpose_IsValidValue(int32_t value__) { } } +#pragma mark - PlatformSubscriptionRequest + +@implementation PlatformSubscriptionRequest + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct PlatformSubscriptionRequest__storage_ { + uint32_t _has_storage_[2]; + PlatformSubscriptionRequest_PlatformSubscriptionRequestV0 *v0; +} PlatformSubscriptionRequest__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformSubscriptionRequest_PlatformSubscriptionRequestV0), + .number = PlatformSubscriptionRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(PlatformSubscriptionRequest__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformSubscriptionRequest class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformSubscriptionRequest__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "version", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void PlatformSubscriptionRequest_ClearVersionOneOfCase(PlatformSubscriptionRequest *message) { + GPBDescriptor *descriptor = [PlatformSubscriptionRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - PlatformSubscriptionRequest_PlatformSubscriptionRequestV0 + +@implementation PlatformSubscriptionRequest_PlatformSubscriptionRequestV0 + +@dynamic hasFilter, filter; +@dynamic keepalive; + +typedef struct PlatformSubscriptionRequest_PlatformSubscriptionRequestV0__storage_ { + uint32_t _has_storage_[1]; + uint32_t keepalive; + PlatformFilterV0 *filter; +} PlatformSubscriptionRequest_PlatformSubscriptionRequestV0__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "filter", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformFilterV0), + .number = PlatformSubscriptionRequest_PlatformSubscriptionRequestV0_FieldNumber_Filter, + .hasIndex = 0, + .offset = (uint32_t)offsetof(PlatformSubscriptionRequest_PlatformSubscriptionRequestV0__storage_, filter), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "keepalive", + .dataTypeSpecific.clazz = Nil, + .number = PlatformSubscriptionRequest_PlatformSubscriptionRequestV0_FieldNumber_Keepalive, + .hasIndex = 1, + .offset = (uint32_t)offsetof(PlatformSubscriptionRequest_PlatformSubscriptionRequestV0__storage_, keepalive), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformSubscriptionRequest_PlatformSubscriptionRequestV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformSubscriptionRequest_PlatformSubscriptionRequestV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformSubscriptionRequest)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - PlatformSubscriptionResponse + +@implementation PlatformSubscriptionResponse + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct PlatformSubscriptionResponse__storage_ { + uint32_t _has_storage_[2]; + PlatformSubscriptionResponse_PlatformSubscriptionResponseV0 *v0; +} PlatformSubscriptionResponse__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformSubscriptionResponse_PlatformSubscriptionResponseV0), + .number = PlatformSubscriptionResponse_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(PlatformSubscriptionResponse__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformSubscriptionResponse class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformSubscriptionResponse__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "version", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void PlatformSubscriptionResponse_ClearVersionOneOfCase(PlatformSubscriptionResponse *message) { + GPBDescriptor *descriptor = [PlatformSubscriptionResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - PlatformSubscriptionResponse_PlatformSubscriptionResponseV0 + +@implementation PlatformSubscriptionResponse_PlatformSubscriptionResponseV0 + +@dynamic subscriptionId; +@dynamic hasEvent, event; + +typedef struct PlatformSubscriptionResponse_PlatformSubscriptionResponseV0__storage_ { + uint32_t _has_storage_[1]; + PlatformEventV0 *event; + uint64_t subscriptionId; +} PlatformSubscriptionResponse_PlatformSubscriptionResponseV0__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "subscriptionId", + .dataTypeSpecific.clazz = Nil, + .number = PlatformSubscriptionResponse_PlatformSubscriptionResponseV0_FieldNumber_SubscriptionId, + .hasIndex = 0, + .offset = (uint32_t)offsetof(PlatformSubscriptionResponse_PlatformSubscriptionResponseV0__storage_, subscriptionId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "event", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformEventV0), + .number = PlatformSubscriptionResponse_PlatformSubscriptionResponseV0_FieldNumber_Event, + .hasIndex = 1, + .offset = (uint32_t)offsetof(PlatformSubscriptionResponse_PlatformSubscriptionResponseV0__storage_, event), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformSubscriptionResponse_PlatformSubscriptionResponseV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformSubscriptionResponse_PlatformSubscriptionResponseV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformSubscriptionResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - PlatformFilterV0 + +@implementation PlatformFilterV0 + +@dynamic kindOneOfCase; +@dynamic all; +@dynamic blockCommitted; +@dynamic stateTransitionResult; + +typedef struct PlatformFilterV0__storage_ { + uint32_t _has_storage_[2]; + PlatformFilterV0_AllEvents *all; + PlatformFilterV0_BlockCommitted *blockCommitted; + PlatformFilterV0_StateTransitionResultFilter *stateTransitionResult; +} PlatformFilterV0__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "all", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformFilterV0_AllEvents), + .number = PlatformFilterV0_FieldNumber_All, + .hasIndex = -1, + .offset = (uint32_t)offsetof(PlatformFilterV0__storage_, all), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "blockCommitted", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformFilterV0_BlockCommitted), + .number = PlatformFilterV0_FieldNumber_BlockCommitted, + .hasIndex = -1, + .offset = (uint32_t)offsetof(PlatformFilterV0__storage_, blockCommitted), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "stateTransitionResult", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformFilterV0_StateTransitionResultFilter), + .number = PlatformFilterV0_FieldNumber_StateTransitionResult, + .hasIndex = -1, + .offset = (uint32_t)offsetof(PlatformFilterV0__storage_, stateTransitionResult), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformFilterV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformFilterV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "kind", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void PlatformFilterV0_ClearKindOneOfCase(PlatformFilterV0 *message) { + GPBDescriptor *descriptor = [PlatformFilterV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - PlatformFilterV0_AllEvents + +@implementation PlatformFilterV0_AllEvents + + +typedef struct PlatformFilterV0_AllEvents__storage_ { + uint32_t _has_storage_[1]; +} PlatformFilterV0_AllEvents__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformFilterV0_AllEvents class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:NULL + fieldCount:0 + storageSize:sizeof(PlatformFilterV0_AllEvents__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformFilterV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - PlatformFilterV0_BlockCommitted + +@implementation PlatformFilterV0_BlockCommitted + + +typedef struct PlatformFilterV0_BlockCommitted__storage_ { + uint32_t _has_storage_[1]; +} PlatformFilterV0_BlockCommitted__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformFilterV0_BlockCommitted class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:NULL + fieldCount:0 + storageSize:sizeof(PlatformFilterV0_BlockCommitted__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformFilterV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - PlatformFilterV0_StateTransitionResultFilter + +@implementation PlatformFilterV0_StateTransitionResultFilter + +@dynamic hasTxHash, txHash; + +typedef struct PlatformFilterV0_StateTransitionResultFilter__storage_ { + uint32_t _has_storage_[1]; + NSData *txHash; +} PlatformFilterV0_StateTransitionResultFilter__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "txHash", + .dataTypeSpecific.clazz = Nil, + .number = PlatformFilterV0_StateTransitionResultFilter_FieldNumber_TxHash, + .hasIndex = 0, + .offset = (uint32_t)offsetof(PlatformFilterV0_StateTransitionResultFilter__storage_, txHash), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeBytes, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformFilterV0_StateTransitionResultFilter class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformFilterV0_StateTransitionResultFilter__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformFilterV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - PlatformEventV0 + +@implementation PlatformEventV0 + +@dynamic eventOneOfCase; +@dynamic blockCommitted; +@dynamic stateTransitionFinalized; +@dynamic keepalive; + +typedef struct PlatformEventV0__storage_ { + uint32_t _has_storage_[2]; + PlatformEventV0_BlockCommitted *blockCommitted; + PlatformEventV0_StateTransitionFinalized *stateTransitionFinalized; + PlatformEventV0_Keepalive *keepalive; +} PlatformEventV0__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "blockCommitted", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformEventV0_BlockCommitted), + .number = PlatformEventV0_FieldNumber_BlockCommitted, + .hasIndex = -1, + .offset = (uint32_t)offsetof(PlatformEventV0__storage_, blockCommitted), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "stateTransitionFinalized", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformEventV0_StateTransitionFinalized), + .number = PlatformEventV0_FieldNumber_StateTransitionFinalized, + .hasIndex = -1, + .offset = (uint32_t)offsetof(PlatformEventV0__storage_, stateTransitionFinalized), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "keepalive", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformEventV0_Keepalive), + .number = PlatformEventV0_FieldNumber_Keepalive, + .hasIndex = -1, + .offset = (uint32_t)offsetof(PlatformEventV0__storage_, keepalive), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformEventV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformEventV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "event", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void PlatformEventV0_ClearEventOneOfCase(PlatformEventV0 *message) { + GPBDescriptor *descriptor = [PlatformEventV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - PlatformEventV0_BlockMetadata + +@implementation PlatformEventV0_BlockMetadata + +@dynamic height; +@dynamic timeMs; +@dynamic blockIdHash; + +typedef struct PlatformEventV0_BlockMetadata__storage_ { + uint32_t _has_storage_[1]; + NSData *blockIdHash; + uint64_t height; + uint64_t timeMs; +} PlatformEventV0_BlockMetadata__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "height", + .dataTypeSpecific.clazz = Nil, + .number = PlatformEventV0_BlockMetadata_FieldNumber_Height, + .hasIndex = 0, + .offset = (uint32_t)offsetof(PlatformEventV0_BlockMetadata__storage_, height), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "timeMs", + .dataTypeSpecific.clazz = Nil, + .number = PlatformEventV0_BlockMetadata_FieldNumber_TimeMs, + .hasIndex = 1, + .offset = (uint32_t)offsetof(PlatformEventV0_BlockMetadata__storage_, timeMs), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "blockIdHash", + .dataTypeSpecific.clazz = Nil, + .number = PlatformEventV0_BlockMetadata_FieldNumber_BlockIdHash, + .hasIndex = 2, + .offset = (uint32_t)offsetof(PlatformEventV0_BlockMetadata__storage_, blockIdHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformEventV0_BlockMetadata class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformEventV0_BlockMetadata__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformEventV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - PlatformEventV0_BlockCommitted + +@implementation PlatformEventV0_BlockCommitted + +@dynamic hasMeta, meta; +@dynamic txCount; + +typedef struct PlatformEventV0_BlockCommitted__storage_ { + uint32_t _has_storage_[1]; + uint32_t txCount; + PlatformEventV0_BlockMetadata *meta; +} PlatformEventV0_BlockCommitted__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "meta", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformEventV0_BlockMetadata), + .number = PlatformEventV0_BlockCommitted_FieldNumber_Meta, + .hasIndex = 0, + .offset = (uint32_t)offsetof(PlatformEventV0_BlockCommitted__storage_, meta), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "txCount", + .dataTypeSpecific.clazz = Nil, + .number = PlatformEventV0_BlockCommitted_FieldNumber_TxCount, + .hasIndex = 1, + .offset = (uint32_t)offsetof(PlatformEventV0_BlockCommitted__storage_, txCount), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformEventV0_BlockCommitted class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformEventV0_BlockCommitted__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformEventV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - PlatformEventV0_StateTransitionFinalized + +@implementation PlatformEventV0_StateTransitionFinalized + +@dynamic hasMeta, meta; +@dynamic txHash; + +typedef struct PlatformEventV0_StateTransitionFinalized__storage_ { + uint32_t _has_storage_[1]; + PlatformEventV0_BlockMetadata *meta; + NSData *txHash; +} PlatformEventV0_StateTransitionFinalized__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "meta", + .dataTypeSpecific.clazz = GPBObjCClass(PlatformEventV0_BlockMetadata), + .number = PlatformEventV0_StateTransitionFinalized_FieldNumber_Meta, + .hasIndex = 0, + .offset = (uint32_t)offsetof(PlatformEventV0_StateTransitionFinalized__storage_, meta), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "txHash", + .dataTypeSpecific.clazz = Nil, + .number = PlatformEventV0_StateTransitionFinalized_FieldNumber_TxHash, + .hasIndex = 1, + .offset = (uint32_t)offsetof(PlatformEventV0_StateTransitionFinalized__storage_, txHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformEventV0_StateTransitionFinalized class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(PlatformEventV0_StateTransitionFinalized__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformEventV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - PlatformEventV0_Keepalive + +@implementation PlatformEventV0_Keepalive + + +typedef struct PlatformEventV0_Keepalive__storage_ { + uint32_t _has_storage_[1]; +} PlatformEventV0_Keepalive__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; + if (!descriptor) { + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[PlatformEventV0_Keepalive class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:NULL + fieldCount:0 + storageSize:sizeof(PlatformEventV0_Keepalive__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(PlatformEventV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + #pragma mark - Proof @implementation Proof diff --git a/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbrpc.h b/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbrpc.h index 253f5abe1d1..88540cf17db 100644 --- a/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbrpc.h +++ b/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbrpc.h @@ -105,6 +105,8 @@ @class GetTotalCreditsInPlatformResponse; @class GetVotePollsByEndDateRequest; @class GetVotePollsByEndDateResponse; +@class PlatformSubscriptionRequest; +@class PlatformSubscriptionResponse; @class WaitForStateTransitionResultRequest; @class WaitForStateTransitionResultResponse; @@ -340,6 +342,17 @@ NS_ASSUME_NONNULL_BEGIN - (GRPCUnaryProtoCall *)getGroupActionSignersWithMessage:(GetGroupActionSignersRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; +#pragma mark subscribePlatformEvents(PlatformSubscriptionRequest) returns (stream PlatformSubscriptionResponse) + +/** + * Server-streaming subscription for platform events. + * + * Allows subscribing to various Platform events. + * + * Once connected, it sends handshake response with empty event. + */ +- (GRPCUnaryProtoCall *)subscribePlatformEventsWithMessage:(PlatformSubscriptionRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; + @end /** @@ -727,6 +740,31 @@ NS_ASSUME_NONNULL_BEGIN - (GRPCProtoCall *)RPCTogetGroupActionSignersWithRequest:(GetGroupActionSignersRequest *)request handler:(void(^)(GetGroupActionSignersResponse *_Nullable response, NSError *_Nullable error))handler; +#pragma mark subscribePlatformEvents(PlatformSubscriptionRequest) returns (stream PlatformSubscriptionResponse) + +/** + * Server-streaming subscription for platform events. + * + * Allows subscribing to various Platform events. + * + * Once connected, it sends handshake response with empty event. + * + * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended. + */ +- (void)subscribePlatformEventsWithRequest:(PlatformSubscriptionRequest *)request eventHandler:(void(^)(BOOL done, PlatformSubscriptionResponse *_Nullable response, NSError *_Nullable error))eventHandler; + +/** + * Server-streaming subscription for platform events. + * + * Allows subscribing to various Platform events. + * + * Once connected, it sends handshake response with empty event. + * + * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended. + */ +- (GRPCProtoCall *)RPCTosubscribePlatformEventsWithRequest:(PlatformSubscriptionRequest *)request eventHandler:(void(^)(BOOL done, PlatformSubscriptionResponse *_Nullable response, NSError *_Nullable error))eventHandler; + + @end diff --git a/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbrpc.m b/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbrpc.m index 8b57e69c3ac..5eea85a9407 100644 --- a/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbrpc.m +++ b/packages/dapi-grpc/clients/platform/v0/objective-c/Platform.pbrpc.m @@ -1075,5 +1075,50 @@ - (GRPCUnaryProtoCall *)getGroupActionSignersWithMessage:(GetGroupActionSignersR responseClass:[GetGroupActionSignersResponse class]]; } +#pragma mark subscribePlatformEvents(PlatformSubscriptionRequest) returns (stream PlatformSubscriptionResponse) + +/** + * Server-streaming subscription for platform events. + * + * Allows subscribing to various Platform events. + * + * Once connected, it sends handshake response with empty event. + * + * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended. + */ +- (void)subscribePlatformEventsWithRequest:(PlatformSubscriptionRequest *)request eventHandler:(void(^)(BOOL done, PlatformSubscriptionResponse *_Nullable response, NSError *_Nullable error))eventHandler{ + [[self RPCTosubscribePlatformEventsWithRequest:request eventHandler:eventHandler] start]; +} +// Returns a not-yet-started RPC object. +/** + * Server-streaming subscription for platform events. + * + * Allows subscribing to various Platform events. + * + * Once connected, it sends handshake response with empty event. + * + * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended. + */ +- (GRPCProtoCall *)RPCTosubscribePlatformEventsWithRequest:(PlatformSubscriptionRequest *)request eventHandler:(void(^)(BOOL done, PlatformSubscriptionResponse *_Nullable response, NSError *_Nullable error))eventHandler{ + return [self RPCToMethod:@"subscribePlatformEvents" + requestsWriter:[GRXWriter writerWithValue:request] + responseClass:[PlatformSubscriptionResponse class] + responsesWriteable:[GRXWriteable writeableWithEventHandler:eventHandler]]; +} +/** + * Server-streaming subscription for platform events. + * + * Allows subscribing to various Platform events. + * + * Once connected, it sends handshake response with empty event. + */ +- (GRPCUnaryProtoCall *)subscribePlatformEventsWithMessage:(PlatformSubscriptionRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions { + return [self RPCToMethod:@"subscribePlatformEvents" + message:message + responseHandler:handler + callOptions:callOptions + responseClass:[PlatformSubscriptionResponse class]]; +} + @end #endif diff --git a/packages/dapi-grpc/clients/platform/v0/python/platform_pb2.py b/packages/dapi-grpc/clients/platform/v0/python/platform_pb2.py index fe6ad4ce5c2..9ead145b6ca 100644 --- a/packages/dapi-grpc/clients/platform/v0/python/platform_pb2.py +++ b/packages/dapi-grpc/clients/platform/v0/python/platform_pb2.py @@ -23,7 +23,7 @@ syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x0eplatform.proto\x12\x19org.dash.platform.dapi.v0\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x81\x01\n\x05Proof\x12\x15\n\rgrovedb_proof\x18\x01 \x01(\x0c\x12\x13\n\x0bquorum_hash\x18\x02 \x01(\x0c\x12\x11\n\tsignature\x18\x03 \x01(\x0c\x12\r\n\x05round\x18\x04 \x01(\r\x12\x15\n\rblock_id_hash\x18\x05 \x01(\x0c\x12\x13\n\x0bquorum_type\x18\x06 \x01(\r\"\x98\x01\n\x10ResponseMetadata\x12\x12\n\x06height\x18\x01 \x01(\x04\x42\x02\x30\x01\x12 \n\x18\x63ore_chain_locked_height\x18\x02 \x01(\r\x12\r\n\x05\x65poch\x18\x03 \x01(\r\x12\x13\n\x07time_ms\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x18\n\x10protocol_version\x18\x05 \x01(\r\x12\x10\n\x08\x63hain_id\x18\x06 \x01(\t\"L\n\x1dStateTransitionBroadcastError\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\";\n\x1f\x42roadcastStateTransitionRequest\x12\x18\n\x10state_transition\x18\x01 \x01(\x0c\"\"\n BroadcastStateTransitionResponse\"\xa4\x01\n\x12GetIdentityRequest\x12P\n\x02v0\x18\x01 \x01(\x0b\x32\x42.org.dash.platform.dapi.v0.GetIdentityRequest.GetIdentityRequestV0H\x00\x1a\x31\n\x14GetIdentityRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xc1\x01\n\x17GetIdentityNonceRequest\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetIdentityNonceRequest.GetIdentityNonceRequestV0H\x00\x1a?\n\x19GetIdentityNonceRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xf6\x01\n\x1fGetIdentityContractNonceRequest\x12j\n\x02v0\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetIdentityContractNonceRequest.GetIdentityContractNonceRequestV0H\x00\x1a\\\n!GetIdentityContractNonceRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63ontract_id\x18\x02 \x01(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xc0\x01\n\x19GetIdentityBalanceRequest\x12^\n\x02v0\x18\x01 \x01(\x0b\x32P.org.dash.platform.dapi.v0.GetIdentityBalanceRequest.GetIdentityBalanceRequestV0H\x00\x1a\x38\n\x1bGetIdentityBalanceRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xec\x01\n$GetIdentityBalanceAndRevisionRequest\x12t\n\x02v0\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionRequest.GetIdentityBalanceAndRevisionRequestV0H\x00\x1a\x43\n&GetIdentityBalanceAndRevisionRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x9e\x02\n\x13GetIdentityResponse\x12R\n\x02v0\x18\x01 \x01(\x0b\x32\x44.org.dash.platform.dapi.v0.GetIdentityResponse.GetIdentityResponseV0H\x00\x1a\xa7\x01\n\x15GetIdentityResponseV0\x12\x12\n\x08identity\x18\x01 \x01(\x0cH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xbc\x02\n\x18GetIdentityNonceResponse\x12\\\n\x02v0\x18\x01 \x01(\x0b\x32N.org.dash.platform.dapi.v0.GetIdentityNonceResponse.GetIdentityNonceResponseV0H\x00\x1a\xb6\x01\n\x1aGetIdentityNonceResponseV0\x12\x1c\n\x0eidentity_nonce\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xe5\x02\n GetIdentityContractNonceResponse\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetIdentityContractNonceResponse.GetIdentityContractNonceResponseV0H\x00\x1a\xc7\x01\n\"GetIdentityContractNonceResponseV0\x12%\n\x17identity_contract_nonce\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xbd\x02\n\x1aGetIdentityBalanceResponse\x12`\n\x02v0\x18\x01 \x01(\x0b\x32R.org.dash.platform.dapi.v0.GetIdentityBalanceResponse.GetIdentityBalanceResponseV0H\x00\x1a\xb1\x01\n\x1cGetIdentityBalanceResponseV0\x12\x15\n\x07\x62\x61lance\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xb1\x04\n%GetIdentityBalanceAndRevisionResponse\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse.GetIdentityBalanceAndRevisionResponseV0H\x00\x1a\x84\x03\n\'GetIdentityBalanceAndRevisionResponseV0\x12\x9b\x01\n\x14\x62\x61lance_and_revision\x18\x01 \x01(\x0b\x32{.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse.GetIdentityBalanceAndRevisionResponseV0.BalanceAndRevisionH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a?\n\x12\x42\x61lanceAndRevision\x12\x13\n\x07\x62\x61lance\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x14\n\x08revision\x18\x02 \x01(\x04\x42\x02\x30\x01\x42\x08\n\x06resultB\t\n\x07version\"\xd1\x01\n\x0eKeyRequestType\x12\x36\n\x08\x61ll_keys\x18\x01 \x01(\x0b\x32\".org.dash.platform.dapi.v0.AllKeysH\x00\x12@\n\rspecific_keys\x18\x02 \x01(\x0b\x32\'.org.dash.platform.dapi.v0.SpecificKeysH\x00\x12:\n\nsearch_key\x18\x03 \x01(\x0b\x32$.org.dash.platform.dapi.v0.SearchKeyH\x00\x42\t\n\x07request\"\t\n\x07\x41llKeys\"\x1f\n\x0cSpecificKeys\x12\x0f\n\x07key_ids\x18\x01 \x03(\r\"\xb6\x01\n\tSearchKey\x12I\n\x0bpurpose_map\x18\x01 \x03(\x0b\x32\x34.org.dash.platform.dapi.v0.SearchKey.PurposeMapEntry\x1a^\n\x0fPurposeMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.org.dash.platform.dapi.v0.SecurityLevelMap:\x02\x38\x01\"\xbf\x02\n\x10SecurityLevelMap\x12]\n\x12security_level_map\x18\x01 \x03(\x0b\x32\x41.org.dash.platform.dapi.v0.SecurityLevelMap.SecurityLevelMapEntry\x1aw\n\x15SecurityLevelMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12M\n\x05value\x18\x02 \x01(\x0e\x32>.org.dash.platform.dapi.v0.SecurityLevelMap.KeyKindRequestType:\x02\x38\x01\"S\n\x12KeyKindRequestType\x12\x1f\n\x1b\x43URRENT_KEY_OF_KIND_REQUEST\x10\x00\x12\x1c\n\x18\x41LL_KEYS_OF_KIND_REQUEST\x10\x01\"\xda\x02\n\x16GetIdentityKeysRequest\x12X\n\x02v0\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetIdentityKeysRequest.GetIdentityKeysRequestV0H\x00\x1a\xda\x01\n\x18GetIdentityKeysRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12?\n\x0crequest_type\x18\x02 \x01(\x0b\x32).org.dash.platform.dapi.v0.KeyRequestType\x12+\n\x05limit\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12,\n\x06offset\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\t\n\x07version\"\x99\x03\n\x17GetIdentityKeysResponse\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetIdentityKeysResponse.GetIdentityKeysResponseV0H\x00\x1a\x96\x02\n\x19GetIdentityKeysResponseV0\x12\x61\n\x04keys\x18\x01 \x01(\x0b\x32Q.org.dash.platform.dapi.v0.GetIdentityKeysResponse.GetIdentityKeysResponseV0.KeysH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x1a\n\x04Keys\x12\x12\n\nkeys_bytes\x18\x01 \x03(\x0c\x42\x08\n\x06resultB\t\n\x07version\"\xef\x02\n GetIdentitiesContractKeysRequest\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest.GetIdentitiesContractKeysRequestV0H\x00\x1a\xd1\x01\n\"GetIdentitiesContractKeysRequestV0\x12\x16\n\x0eidentities_ids\x18\x01 \x03(\x0c\x12\x13\n\x0b\x63ontract_id\x18\x02 \x01(\x0c\x12\x1f\n\x12\x64ocument_type_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x08purposes\x18\x04 \x03(\x0e\x32%.org.dash.platform.dapi.v0.KeyPurpose\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\x15\n\x13_document_type_nameB\t\n\x07version\"\xdf\x06\n!GetIdentitiesContractKeysResponse\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0H\x00\x1a\xbe\x05\n#GetIdentitiesContractKeysResponseV0\x12\x8a\x01\n\x0fidentities_keys\x18\x01 \x01(\x0b\x32o.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentitiesKeysH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aY\n\x0bPurposeKeys\x12\x36\n\x07purpose\x18\x01 \x01(\x0e\x32%.org.dash.platform.dapi.v0.KeyPurpose\x12\x12\n\nkeys_bytes\x18\x02 \x03(\x0c\x1a\x9f\x01\n\x0cIdentityKeys\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12z\n\x04keys\x18\x02 \x03(\x0b\x32l.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.PurposeKeys\x1a\x90\x01\n\x0eIdentitiesKeys\x12~\n\x07\x65ntries\x18\x01 \x03(\x0b\x32m.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentityKeysB\x08\n\x06resultB\t\n\x07version\"\xa4\x02\n*GetEvonodesProposedEpochBlocksByIdsRequest\x12\x80\x01\n\x02v0\x18\x01 \x01(\x0b\x32r.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0H\x00\x1ah\n,GetEvonodesProposedEpochBlocksByIdsRequestV0\x12\x12\n\x05\x65poch\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0b\n\x03ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\x08\n\x06_epochB\t\n\x07version\"\x92\x06\n&GetEvonodesProposedEpochBlocksResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0H\x00\x1a\xe2\x04\n(GetEvonodesProposedEpochBlocksResponseV0\x12\xb1\x01\n#evonodes_proposed_block_counts_info\x18\x01 \x01(\x0b\x32\x81\x01.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocksH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a?\n\x15\x45vonodeProposedBlocks\x12\x13\n\x0bpro_tx_hash\x18\x01 \x01(\x0c\x12\x11\n\x05\x63ount\x18\x02 \x01(\x04\x42\x02\x30\x01\x1a\xc4\x01\n\x16\x45vonodesProposedBlocks\x12\xa9\x01\n\x1e\x65vonodes_proposed_block_counts\x18\x01 \x03(\x0b\x32\x80\x01.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocksB\x08\n\x06resultB\t\n\x07version\"\xf2\x02\n,GetEvonodesProposedEpochBlocksByRangeRequest\x12\x84\x01\n\x02v0\x18\x01 \x01(\x0b\x32v.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0H\x00\x1a\xaf\x01\n.GetEvonodesProposedEpochBlocksByRangeRequestV0\x12\x12\n\x05\x65poch\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\rH\x02\x88\x01\x01\x12\x15\n\x0bstart_after\x18\x03 \x01(\x0cH\x00\x12\x12\n\x08start_at\x18\x04 \x01(\x0cH\x00\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\x07\n\x05startB\x08\n\x06_epochB\x08\n\x06_limitB\t\n\x07version\"\xcd\x01\n\x1cGetIdentitiesBalancesRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0H\x00\x1a<\n\x1eGetIdentitiesBalancesRequestV0\x12\x0b\n\x03ids\x18\x01 \x03(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x9f\x05\n\x1dGetIdentitiesBalancesResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0H\x00\x1a\x8a\x04\n\x1fGetIdentitiesBalancesResponseV0\x12\x8a\x01\n\x13identities_balances\x18\x01 \x01(\x0b\x32k.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalancesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aL\n\x0fIdentityBalance\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x42\n\n\x08_balance\x1a\x8f\x01\n\x12IdentitiesBalances\x12y\n\x07\x65ntries\x18\x01 \x03(\x0b\x32h.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalanceB\x08\n\x06resultB\t\n\x07version\"\xb4\x01\n\x16GetDataContractRequest\x12X\n\x02v0\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0H\x00\x1a\x35\n\x18GetDataContractRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xb3\x02\n\x17GetDataContractResponse\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0H\x00\x1a\xb0\x01\n\x19GetDataContractResponseV0\x12\x17\n\rdata_contract\x18\x01 \x01(\x0cH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xb9\x01\n\x17GetDataContractsRequest\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0H\x00\x1a\x37\n\x19GetDataContractsRequestV0\x12\x0b\n\x03ids\x18\x01 \x03(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xcf\x04\n\x18GetDataContractsResponse\x12\\\n\x02v0\x18\x01 \x01(\x0b\x32N.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0H\x00\x1a[\n\x11\x44\x61taContractEntry\x12\x12\n\nidentifier\x18\x01 \x01(\x0c\x12\x32\n\rdata_contract\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x1au\n\rDataContracts\x12\x64\n\x15\x64\x61ta_contract_entries\x18\x01 \x03(\x0b\x32\x45.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry\x1a\xf5\x01\n\x1aGetDataContractsResponseV0\x12[\n\x0e\x64\x61ta_contracts\x18\x01 \x01(\x0b\x32\x41.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xc5\x02\n\x1dGetDataContractHistoryRequest\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0H\x00\x1a\xb0\x01\n\x1fGetDataContractHistoryRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12+\n\x05limit\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12,\n\x06offset\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x17\n\x0bstart_at_ms\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\t\n\x07version\"\xb2\x05\n\x1eGetDataContractHistoryResponse\x12h\n\x02v0\x18\x01 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0H\x00\x1a\x9a\x04\n GetDataContractHistoryResponseV0\x12\x8f\x01\n\x15\x64\x61ta_contract_history\x18\x01 \x01(\x0b\x32n.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a;\n\x18\x44\x61taContractHistoryEntry\x12\x10\n\x04\x64\x61te\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\r\n\x05value\x18\x02 \x01(\x0c\x1a\xaa\x01\n\x13\x44\x61taContractHistory\x12\x92\x01\n\x15\x64\x61ta_contract_entries\x18\x01 \x03(\x0b\x32s.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntryB\x08\n\x06resultB\t\n\x07version\"\xb2\x02\n\x13GetDocumentsRequest\x12R\n\x02v0\x18\x01 \x01(\x0b\x32\x44.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0H\x00\x1a\xbb\x01\n\x15GetDocumentsRequestV0\x12\x18\n\x10\x64\x61ta_contract_id\x18\x01 \x01(\x0c\x12\x15\n\rdocument_type\x18\x02 \x01(\t\x12\r\n\x05where\x18\x03 \x01(\x0c\x12\x10\n\x08order_by\x18\x04 \x01(\x0c\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x15\n\x0bstart_after\x18\x06 \x01(\x0cH\x00\x12\x12\n\x08start_at\x18\x07 \x01(\x0cH\x00\x12\r\n\x05prove\x18\x08 \x01(\x08\x42\x07\n\x05startB\t\n\x07version\"\x95\x03\n\x14GetDocumentsResponse\x12T\n\x02v0\x18\x01 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0H\x00\x1a\x9b\x02\n\x16GetDocumentsResponseV0\x12\x65\n\tdocuments\x18\x01 \x01(\x0b\x32P.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.DocumentsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x1e\n\tDocuments\x12\x11\n\tdocuments\x18\x01 \x03(\x0c\x42\x08\n\x06resultB\t\n\x07version\"\xed\x01\n!GetIdentityByPublicKeyHashRequest\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0H\x00\x1aM\n#GetIdentityByPublicKeyHashRequestV0\x12\x17\n\x0fpublic_key_hash\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xda\x02\n\"GetIdentityByPublicKeyHashResponse\x12p\n\x02v0\x18\x01 \x01(\x0b\x32\x62.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0H\x00\x1a\xb6\x01\n$GetIdentityByPublicKeyHashResponseV0\x12\x12\n\x08identity\x18\x01 \x01(\x0cH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xbd\x02\n*GetIdentityByNonUniquePublicKeyHashRequest\x12\x80\x01\n\x02v0\x18\x01 \x01(\x0b\x32r.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashRequest.GetIdentityByNonUniquePublicKeyHashRequestV0H\x00\x1a\x80\x01\n,GetIdentityByNonUniquePublicKeyHashRequestV0\x12\x17\n\x0fpublic_key_hash\x18\x01 \x01(\x0c\x12\x18\n\x0bstart_after\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\x0e\n\x0c_start_afterB\t\n\x07version\"\xd6\x06\n+GetIdentityByNonUniquePublicKeyHashResponse\x12\x82\x01\n\x02v0\x18\x01 \x01(\x0b\x32t.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashResponse.GetIdentityByNonUniquePublicKeyHashResponseV0H\x00\x1a\x96\x05\n-GetIdentityByNonUniquePublicKeyHashResponseV0\x12\x9a\x01\n\x08identity\x18\x01 \x01(\x0b\x32\x85\x01.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashResponse.GetIdentityByNonUniquePublicKeyHashResponseV0.IdentityResponseH\x00\x12\x9d\x01\n\x05proof\x18\x02 \x01(\x0b\x32\x8b\x01.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashResponse.GetIdentityByNonUniquePublicKeyHashResponseV0.IdentityProvedResponseH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x36\n\x10IdentityResponse\x12\x15\n\x08identity\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_identity\x1a\xa6\x01\n\x16IdentityProvedResponse\x12P\n&grovedb_identity_public_key_hash_proof\x18\x01 \x01(\x0b\x32 .org.dash.platform.dapi.v0.Proof\x12!\n\x14identity_proof_bytes\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x17\n\x15_identity_proof_bytesB\x08\n\x06resultB\t\n\x07version\"\xfb\x01\n#WaitForStateTransitionResultRequest\x12r\n\x02v0\x18\x01 \x01(\x0b\x32\x64.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0H\x00\x1aU\n%WaitForStateTransitionResultRequestV0\x12\x1d\n\x15state_transition_hash\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x99\x03\n$WaitForStateTransitionResultResponse\x12t\n\x02v0\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0H\x00\x1a\xef\x01\n&WaitForStateTransitionResultResponseV0\x12I\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x38.org.dash.platform.dapi.v0.StateTransitionBroadcastErrorH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xc4\x01\n\x19GetConsensusParamsRequest\x12^\n\x02v0\x18\x01 \x01(\x0b\x32P.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0H\x00\x1a<\n\x1bGetConsensusParamsRequestV0\x12\x0e\n\x06height\x18\x01 \x01(\x05\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x9c\x04\n\x1aGetConsensusParamsResponse\x12`\n\x02v0\x18\x01 \x01(\x0b\x32R.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0H\x00\x1aP\n\x14\x43onsensusParamsBlock\x12\x11\n\tmax_bytes\x18\x01 \x01(\t\x12\x0f\n\x07max_gas\x18\x02 \x01(\t\x12\x14\n\x0ctime_iota_ms\x18\x03 \x01(\t\x1a\x62\n\x17\x43onsensusParamsEvidence\x12\x1a\n\x12max_age_num_blocks\x18\x01 \x01(\t\x12\x18\n\x10max_age_duration\x18\x02 \x01(\t\x12\x11\n\tmax_bytes\x18\x03 \x01(\t\x1a\xda\x01\n\x1cGetConsensusParamsResponseV0\x12Y\n\x05\x62lock\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock\x12_\n\x08\x65vidence\x18\x02 \x01(\x0b\x32M.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidenceB\t\n\x07version\"\xe4\x01\n%GetProtocolVersionUpgradeStateRequest\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0H\x00\x1a\x38\n\'GetProtocolVersionUpgradeStateRequestV0\x12\r\n\x05prove\x18\x01 \x01(\x08\x42\t\n\x07version\"\xb5\x05\n&GetProtocolVersionUpgradeStateResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0H\x00\x1a\x85\x04\n(GetProtocolVersionUpgradeStateResponseV0\x12\x87\x01\n\x08versions\x18\x01 \x01(\x0b\x32s.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x96\x01\n\x08Versions\x12\x89\x01\n\x08versions\x18\x01 \x03(\x0b\x32w.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry\x1a:\n\x0cVersionEntry\x12\x16\n\x0eversion_number\x18\x01 \x01(\r\x12\x12\n\nvote_count\x18\x02 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xa3\x02\n*GetProtocolVersionUpgradeVoteStatusRequest\x12\x80\x01\n\x02v0\x18\x01 \x01(\x0b\x32r.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0H\x00\x1ag\n,GetProtocolVersionUpgradeVoteStatusRequestV0\x12\x19\n\x11start_pro_tx_hash\x18\x01 \x01(\x0c\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xef\x05\n+GetProtocolVersionUpgradeVoteStatusResponse\x12\x82\x01\n\x02v0\x18\x01 \x01(\x0b\x32t.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0H\x00\x1a\xaf\x04\n-GetProtocolVersionUpgradeVoteStatusResponseV0\x12\x98\x01\n\x08versions\x18\x01 \x01(\x0b\x32\x83\x01.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignalsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\xaf\x01\n\x0eVersionSignals\x12\x9c\x01\n\x0fversion_signals\x18\x01 \x03(\x0b\x32\x82\x01.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal\x1a\x35\n\rVersionSignal\x12\x13\n\x0bpro_tx_hash\x18\x01 \x01(\x0c\x12\x0f\n\x07version\x18\x02 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xf5\x01\n\x14GetEpochsInfoRequest\x12T\n\x02v0\x18\x01 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0H\x00\x1a|\n\x16GetEpochsInfoRequestV0\x12\x31\n\x0bstart_epoch\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x11\n\tascending\x18\x03 \x01(\x08\x12\r\n\x05prove\x18\x04 \x01(\x08\x42\t\n\x07version\"\x99\x05\n\x15GetEpochsInfoResponse\x12V\n\x02v0\x18\x01 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0H\x00\x1a\x9c\x04\n\x17GetEpochsInfoResponseV0\x12\x65\n\x06\x65pochs\x18\x01 \x01(\x0b\x32S.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1au\n\nEpochInfos\x12g\n\x0b\x65poch_infos\x18\x01 \x03(\x0b\x32R.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo\x1a\xa6\x01\n\tEpochInfo\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x1e\n\x12\x66irst_block_height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1f\n\x17\x66irst_core_block_height\x18\x03 \x01(\r\x12\x16\n\nstart_time\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x16\n\x0e\x66\x65\x65_multiplier\x18\x05 \x01(\x01\x12\x18\n\x10protocol_version\x18\x06 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xbf\x02\n\x1dGetFinalizedEpochInfosRequest\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetFinalizedEpochInfosRequest.GetFinalizedEpochInfosRequestV0H\x00\x1a\xaa\x01\n\x1fGetFinalizedEpochInfosRequestV0\x12\x19\n\x11start_epoch_index\x18\x01 \x01(\r\x12\"\n\x1astart_epoch_index_included\x18\x02 \x01(\x08\x12\x17\n\x0f\x65nd_epoch_index\x18\x03 \x01(\r\x12 \n\x18\x65nd_epoch_index_included\x18\x04 \x01(\x08\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\t\n\x07version\"\xbd\t\n\x1eGetFinalizedEpochInfosResponse\x12h\n\x02v0\x18\x01 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse.GetFinalizedEpochInfosResponseV0H\x00\x1a\xa5\x08\n GetFinalizedEpochInfosResponseV0\x12\x80\x01\n\x06\x65pochs\x18\x01 \x01(\x0b\x32n.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse.GetFinalizedEpochInfosResponseV0.FinalizedEpochInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\xa4\x01\n\x13\x46inalizedEpochInfos\x12\x8c\x01\n\x15\x66inalized_epoch_infos\x18\x01 \x03(\x0b\x32m.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse.GetFinalizedEpochInfosResponseV0.FinalizedEpochInfo\x1a\x9f\x04\n\x12\x46inalizedEpochInfo\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x1e\n\x12\x66irst_block_height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1f\n\x17\x66irst_core_block_height\x18\x03 \x01(\r\x12\x1c\n\x10\x66irst_block_time\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x16\n\x0e\x66\x65\x65_multiplier\x18\x05 \x01(\x01\x12\x18\n\x10protocol_version\x18\x06 \x01(\r\x12!\n\x15total_blocks_in_epoch\x18\x07 \x01(\x04\x42\x02\x30\x01\x12*\n\"next_epoch_start_core_block_height\x18\x08 \x01(\r\x12!\n\x15total_processing_fees\x18\t \x01(\x04\x42\x02\x30\x01\x12*\n\x1etotal_distributed_storage_fees\x18\n \x01(\x04\x42\x02\x30\x01\x12&\n\x1atotal_created_storage_fees\x18\x0b \x01(\x04\x42\x02\x30\x01\x12\x1e\n\x12\x63ore_block_rewards\x18\x0c \x01(\x04\x42\x02\x30\x01\x12\x81\x01\n\x0f\x62lock_proposers\x18\r \x03(\x0b\x32h.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse.GetFinalizedEpochInfosResponseV0.BlockProposer\x1a\x39\n\rBlockProposer\x12\x13\n\x0bproposer_id\x18\x01 \x01(\x0c\x12\x13\n\x0b\x62lock_count\x18\x02 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xde\x04\n\x1cGetContestedResourcesRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0H\x00\x1a\xcc\x03\n\x1eGetContestedResourcesRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1a\n\x12\x64ocument_type_name\x18\x02 \x01(\t\x12\x12\n\nindex_name\x18\x03 \x01(\t\x12\x1a\n\x12start_index_values\x18\x04 \x03(\x0c\x12\x18\n\x10\x65nd_index_values\x18\x05 \x03(\x0c\x12\x89\x01\n\x13start_at_value_info\x18\x06 \x01(\x0b\x32g.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfoH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x07 \x01(\rH\x01\x88\x01\x01\x12\x17\n\x0forder_ascending\x18\x08 \x01(\x08\x12\r\n\x05prove\x18\t \x01(\x08\x1a\x45\n\x10StartAtValueInfo\x12\x13\n\x0bstart_value\x18\x01 \x01(\x0c\x12\x1c\n\x14start_value_included\x18\x02 \x01(\x08\x42\x16\n\x14_start_at_value_infoB\x08\n\x06_countB\t\n\x07version\"\x88\x04\n\x1dGetContestedResourcesResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0H\x00\x1a\xf3\x02\n\x1fGetContestedResourcesResponseV0\x12\x95\x01\n\x19\x63ontested_resource_values\x18\x01 \x01(\x0b\x32p.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValuesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a<\n\x17\x43ontestedResourceValues\x12!\n\x19\x63ontested_resource_values\x18\x01 \x03(\x0c\x42\x08\n\x06resultB\t\n\x07version\"\xd2\x05\n\x1cGetVotePollsByEndDateRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0H\x00\x1a\xc0\x04\n\x1eGetVotePollsByEndDateRequestV0\x12\x84\x01\n\x0fstart_time_info\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfoH\x00\x88\x01\x01\x12\x80\x01\n\rend_time_info\x18\x02 \x01(\x0b\x32\x64.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfoH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x13\n\x06offset\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x11\n\tascending\x18\x05 \x01(\x08\x12\r\n\x05prove\x18\x06 \x01(\x08\x1aI\n\x0fStartAtTimeInfo\x12\x19\n\rstart_time_ms\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x1b\n\x13start_time_included\x18\x02 \x01(\x08\x1a\x43\n\rEndAtTimeInfo\x12\x17\n\x0b\x65nd_time_ms\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x65nd_time_included\x18\x02 \x01(\x08\x42\x12\n\x10_start_time_infoB\x10\n\x0e_end_time_infoB\x08\n\x06_limitB\t\n\x07_offsetB\t\n\x07version\"\x83\x06\n\x1dGetVotePollsByEndDateResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0H\x00\x1a\xee\x04\n\x1fGetVotePollsByEndDateResponseV0\x12\x9c\x01\n\x18vote_polls_by_timestamps\x18\x01 \x01(\x0b\x32x.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestampsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aV\n\x1eSerializedVotePollsByTimestamp\x12\x15\n\ttimestamp\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x1d\n\x15serialized_vote_polls\x18\x02 \x03(\x0c\x1a\xd7\x01\n\x1fSerializedVotePollsByTimestamps\x12\x99\x01\n\x18vote_polls_by_timestamps\x18\x01 \x03(\x0b\x32w.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp\x12\x18\n\x10\x66inished_results\x18\x02 \x01(\x08\x42\x08\n\x06resultB\t\n\x07version\"\xff\x06\n$GetContestedResourceVoteStateRequest\x12t\n\x02v0\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0H\x00\x1a\xd5\x05\n&GetContestedResourceVoteStateRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1a\n\x12\x64ocument_type_name\x18\x02 \x01(\t\x12\x12\n\nindex_name\x18\x03 \x01(\t\x12\x14\n\x0cindex_values\x18\x04 \x03(\x0c\x12\x86\x01\n\x0bresult_type\x18\x05 \x01(\x0e\x32q.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType\x12\x36\n.allow_include_locked_and_abstaining_vote_tally\x18\x06 \x01(\x08\x12\xa3\x01\n\x18start_at_identifier_info\x18\x07 \x01(\x0b\x32|.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfoH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x08 \x01(\rH\x01\x88\x01\x01\x12\r\n\x05prove\x18\t \x01(\x08\x1aT\n\x15StartAtIdentifierInfo\x12\x18\n\x10start_identifier\x18\x01 \x01(\x0c\x12!\n\x19start_identifier_included\x18\x02 \x01(\x08\"I\n\nResultType\x12\r\n\tDOCUMENTS\x10\x00\x12\x0e\n\nVOTE_TALLY\x10\x01\x12\x1c\n\x18\x44OCUMENTS_AND_VOTE_TALLY\x10\x02\x42\x1b\n\x19_start_at_identifier_infoB\x08\n\x06_countB\t\n\x07version\"\x94\x0c\n%GetContestedResourceVoteStateResponse\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0H\x00\x1a\xe7\n\n\'GetContestedResourceVoteStateResponseV0\x12\xae\x01\n\x1d\x63ontested_resource_contenders\x18\x01 \x01(\x0b\x32\x84\x01.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContendersH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\xda\x03\n\x10\x46inishedVoteInfo\x12\xad\x01\n\x15\x66inished_vote_outcome\x18\x01 \x01(\x0e\x32\x8d\x01.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome\x12\x1f\n\x12won_by_identity_id\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12$\n\x18\x66inished_at_block_height\x18\x03 \x01(\x04\x42\x02\x30\x01\x12%\n\x1d\x66inished_at_core_block_height\x18\x04 \x01(\r\x12%\n\x19\x66inished_at_block_time_ms\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x66inished_at_epoch\x18\x06 \x01(\r\"O\n\x13\x46inishedVoteOutcome\x12\x14\n\x10TOWARDS_IDENTITY\x10\x00\x12\n\n\x06LOCKED\x10\x01\x12\x16\n\x12NO_PREVIOUS_WINNER\x10\x02\x42\x15\n\x13_won_by_identity_id\x1a\xc4\x03\n\x1b\x43ontestedResourceContenders\x12\x86\x01\n\ncontenders\x18\x01 \x03(\x0b\x32r.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender\x12\x1f\n\x12\x61\x62stain_vote_tally\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flock_vote_tally\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x9a\x01\n\x12\x66inished_vote_info\x18\x04 \x01(\x0b\x32y.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfoH\x02\x88\x01\x01\x42\x15\n\x13_abstain_vote_tallyB\x12\n\x10_lock_vote_tallyB\x15\n\x13_finished_vote_info\x1ak\n\tContender\x12\x12\n\nidentifier\x18\x01 \x01(\x0c\x12\x17\n\nvote_count\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08\x64ocument\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x42\r\n\x0b_vote_countB\x0b\n\t_documentB\x08\n\x06resultB\t\n\x07version\"\xd5\x05\n,GetContestedResourceVotersForIdentityRequest\x12\x84\x01\n\x02v0\x18\x01 \x01(\x0b\x32v.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0H\x00\x1a\x92\x04\n.GetContestedResourceVotersForIdentityRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1a\n\x12\x64ocument_type_name\x18\x02 \x01(\t\x12\x12\n\nindex_name\x18\x03 \x01(\t\x12\x14\n\x0cindex_values\x18\x04 \x03(\x0c\x12\x15\n\rcontestant_id\x18\x05 \x01(\x0c\x12\xb4\x01\n\x18start_at_identifier_info\x18\x06 \x01(\x0b\x32\x8c\x01.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfoH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x07 \x01(\rH\x01\x88\x01\x01\x12\x17\n\x0forder_ascending\x18\x08 \x01(\x08\x12\r\n\x05prove\x18\t \x01(\x08\x1aT\n\x15StartAtIdentifierInfo\x12\x18\n\x10start_identifier\x18\x01 \x01(\x0c\x12!\n\x19start_identifier_included\x18\x02 \x01(\x08\x42\x1b\n\x19_start_at_identifier_infoB\x08\n\x06_countB\t\n\x07version\"\xf1\x04\n-GetContestedResourceVotersForIdentityResponse\x12\x86\x01\n\x02v0\x18\x01 \x01(\x0b\x32x.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0H\x00\x1a\xab\x03\n/GetContestedResourceVotersForIdentityResponseV0\x12\xb6\x01\n\x19\x63ontested_resource_voters\x18\x01 \x01(\x0b\x32\x90\x01.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVotersH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x43\n\x17\x43ontestedResourceVoters\x12\x0e\n\x06voters\x18\x01 \x03(\x0c\x12\x18\n\x10\x66inished_results\x18\x02 \x01(\x08\x42\x08\n\x06resultB\t\n\x07version\"\xad\x05\n(GetContestedResourceIdentityVotesRequest\x12|\n\x02v0\x18\x01 \x01(\x0b\x32n.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0H\x00\x1a\xf7\x03\n*GetContestedResourceIdentityVotesRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12+\n\x05limit\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12,\n\x06offset\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x17\n\x0forder_ascending\x18\x04 \x01(\x08\x12\xae\x01\n\x1astart_at_vote_poll_id_info\x18\x05 \x01(\x0b\x32\x84\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfoH\x00\x88\x01\x01\x12\r\n\x05prove\x18\x06 \x01(\x08\x1a\x61\n\x15StartAtVotePollIdInfo\x12 \n\x18start_at_poll_identifier\x18\x01 \x01(\x0c\x12&\n\x1estart_poll_identifier_included\x18\x02 \x01(\x08\x42\x1d\n\x1b_start_at_vote_poll_id_infoB\t\n\x07version\"\xc8\n\n)GetContestedResourceIdentityVotesResponse\x12~\n\x02v0\x18\x01 \x01(\x0b\x32p.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0H\x00\x1a\x8f\t\n+GetContestedResourceIdentityVotesResponseV0\x12\xa1\x01\n\x05votes\x18\x01 \x01(\x0b\x32\x8f\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\xf7\x01\n\x1e\x43ontestedResourceIdentityVotes\x12\xba\x01\n!contested_resource_identity_votes\x18\x01 \x03(\x0b\x32\x8e\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote\x12\x18\n\x10\x66inished_results\x18\x02 \x01(\x08\x1a\xad\x02\n\x12ResourceVoteChoice\x12\xad\x01\n\x10vote_choice_type\x18\x01 \x01(\x0e\x32\x92\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType\x12\x18\n\x0bidentity_id\x18\x02 \x01(\x0cH\x00\x88\x01\x01\"=\n\x0eVoteChoiceType\x12\x14\n\x10TOWARDS_IDENTITY\x10\x00\x12\x0b\n\x07\x41\x42STAIN\x10\x01\x12\x08\n\x04LOCK\x10\x02\x42\x0e\n\x0c_identity_id\x1a\x95\x02\n\x1d\x43ontestedResourceIdentityVote\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1a\n\x12\x64ocument_type_name\x18\x02 \x01(\t\x12\'\n\x1fserialized_index_storage_values\x18\x03 \x03(\x0c\x12\x99\x01\n\x0bvote_choice\x18\x04 \x01(\x0b\x32\x83\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoiceB\x08\n\x06resultB\t\n\x07version\"\xf0\x01\n%GetPrefundedSpecializedBalanceRequest\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0H\x00\x1a\x44\n\'GetPrefundedSpecializedBalanceRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xed\x02\n&GetPrefundedSpecializedBalanceResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0H\x00\x1a\xbd\x01\n(GetPrefundedSpecializedBalanceResponseV0\x12\x15\n\x07\x62\x61lance\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xd0\x01\n GetTotalCreditsInPlatformRequest\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0H\x00\x1a\x33\n\"GetTotalCreditsInPlatformRequestV0\x12\r\n\x05prove\x18\x01 \x01(\x08\x42\t\n\x07version\"\xd9\x02\n!GetTotalCreditsInPlatformResponse\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0H\x00\x1a\xb8\x01\n#GetTotalCreditsInPlatformResponseV0\x12\x15\n\x07\x63redits\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xc4\x01\n\x16GetPathElementsRequest\x12X\n\x02v0\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0H\x00\x1a\x45\n\x18GetPathElementsRequestV0\x12\x0c\n\x04path\x18\x01 \x03(\x0c\x12\x0c\n\x04keys\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xa3\x03\n\x17GetPathElementsResponse\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0H\x00\x1a\xa0\x02\n\x19GetPathElementsResponseV0\x12i\n\x08\x65lements\x18\x01 \x01(\x0b\x32U.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ElementsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x1c\n\x08\x45lements\x12\x10\n\x08\x65lements\x18\x01 \x03(\x0c\x42\x08\n\x06resultB\t\n\x07version\"\x81\x01\n\x10GetStatusRequest\x12L\n\x02v0\x18\x01 \x01(\x0b\x32>.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0H\x00\x1a\x14\n\x12GetStatusRequestV0B\t\n\x07version\"\xe4\x10\n\x11GetStatusResponse\x12N\n\x02v0\x18\x01 \x01(\x0b\x32@.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0H\x00\x1a\xf3\x0f\n\x13GetStatusResponseV0\x12Y\n\x07version\x18\x01 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version\x12S\n\x04node\x18\x02 \x01(\x0b\x32\x45.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node\x12U\n\x05\x63hain\x18\x03 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain\x12Y\n\x07network\x18\x04 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network\x12^\n\nstate_sync\x18\x05 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync\x12S\n\x04time\x18\x06 \x01(\x0b\x32\x45.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time\x1a\x82\x05\n\x07Version\x12\x63\n\x08software\x18\x01 \x01(\x0b\x32Q.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software\x12\x63\n\x08protocol\x18\x02 \x01(\x0b\x32Q.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol\x1a^\n\x08Software\x12\x0c\n\x04\x64\x61pi\x18\x01 \x01(\t\x12\x12\n\x05\x64rive\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ntenderdash\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_driveB\r\n\x0b_tenderdash\x1a\xcc\x02\n\x08Protocol\x12p\n\ntenderdash\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash\x12\x66\n\x05\x64rive\x18\x02 \x01(\x0b\x32W.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive\x1a(\n\nTenderdash\x12\x0b\n\x03p2p\x18\x01 \x01(\r\x12\r\n\x05\x62lock\x18\x02 \x01(\r\x1a<\n\x05\x44rive\x12\x0e\n\x06latest\x18\x03 \x01(\r\x12\x0f\n\x07\x63urrent\x18\x04 \x01(\r\x12\x12\n\nnext_epoch\x18\x05 \x01(\r\x1a\x7f\n\x04Time\x12\x11\n\x05local\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x16\n\x05\x62lock\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12\x18\n\x07genesis\x18\x03 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x12\x12\n\x05\x65poch\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_blockB\n\n\x08_genesisB\x08\n\x06_epoch\x1a<\n\x04Node\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x18\n\x0bpro_tx_hash\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0e\n\x0c_pro_tx_hash\x1a\xb3\x02\n\x05\x43hain\x12\x13\n\x0b\x63\x61tching_up\x18\x01 \x01(\x08\x12\x19\n\x11latest_block_hash\x18\x02 \x01(\x0c\x12\x17\n\x0flatest_app_hash\x18\x03 \x01(\x0c\x12\x1f\n\x13latest_block_height\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x1b\n\x13\x65\x61rliest_block_hash\x18\x05 \x01(\x0c\x12\x19\n\x11\x65\x61rliest_app_hash\x18\x06 \x01(\x0c\x12!\n\x15\x65\x61rliest_block_height\x18\x07 \x01(\x04\x42\x02\x30\x01\x12!\n\x15max_peer_block_height\x18\t \x01(\x04\x42\x02\x30\x01\x12%\n\x18\x63ore_chain_locked_height\x18\n \x01(\rH\x00\x88\x01\x01\x42\x1b\n\x19_core_chain_locked_height\x1a\x43\n\x07Network\x12\x10\n\x08\x63hain_id\x18\x01 \x01(\t\x12\x13\n\x0bpeers_count\x18\x02 \x01(\r\x12\x11\n\tlistening\x18\x03 \x01(\x08\x1a\x85\x02\n\tStateSync\x12\x1d\n\x11total_synced_time\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0eremaining_time\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0ftotal_snapshots\x18\x03 \x01(\r\x12\"\n\x16\x63hunk_process_avg_time\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x1b\n\x0fsnapshot_height\x18\x05 \x01(\x04\x42\x02\x30\x01\x12!\n\x15snapshot_chunks_count\x18\x06 \x01(\x04\x42\x02\x30\x01\x12\x1d\n\x11\x62\x61\x63kfilled_blocks\x18\x07 \x01(\x04\x42\x02\x30\x01\x12!\n\x15\x62\x61\x63kfill_blocks_total\x18\x08 \x01(\x04\x42\x02\x30\x01\x42\t\n\x07version\"\xb1\x01\n\x1cGetCurrentQuorumsInfoRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0H\x00\x1a \n\x1eGetCurrentQuorumsInfoRequestV0B\t\n\x07version\"\xa1\x05\n\x1dGetCurrentQuorumsInfoResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0H\x00\x1a\x46\n\x0bValidatorV0\x12\x13\n\x0bpro_tx_hash\x18\x01 \x01(\x0c\x12\x0f\n\x07node_ip\x18\x02 \x01(\t\x12\x11\n\tis_banned\x18\x03 \x01(\x08\x1a\xaf\x01\n\x0eValidatorSetV0\x12\x13\n\x0bquorum_hash\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63ore_height\x18\x02 \x01(\r\x12U\n\x07members\x18\x03 \x03(\x0b\x32\x44.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0\x12\x1c\n\x14threshold_public_key\x18\x04 \x01(\x0c\x1a\x92\x02\n\x1fGetCurrentQuorumsInfoResponseV0\x12\x15\n\rquorum_hashes\x18\x01 \x03(\x0c\x12\x1b\n\x13\x63urrent_quorum_hash\x18\x02 \x01(\x0c\x12_\n\x0evalidator_sets\x18\x03 \x03(\x0b\x32G.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0\x12\x1b\n\x13last_block_proposer\x18\x04 \x01(\x0c\x12=\n\x08metadata\x18\x05 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\t\n\x07version\"\xf4\x01\n\x1fGetIdentityTokenBalancesRequest\x12j\n\x02v0\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetIdentityTokenBalancesRequest.GetIdentityTokenBalancesRequestV0H\x00\x1aZ\n!GetIdentityTokenBalancesRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x11\n\ttoken_ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xad\x05\n GetIdentityTokenBalancesResponse\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetIdentityTokenBalancesResponse.GetIdentityTokenBalancesResponseV0H\x00\x1a\x8f\x04\n\"GetIdentityTokenBalancesResponseV0\x12\x86\x01\n\x0etoken_balances\x18\x01 \x01(\x0b\x32l.org.dash.platform.dapi.v0.GetIdentityTokenBalancesResponse.GetIdentityTokenBalancesResponseV0.TokenBalancesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aG\n\x11TokenBalanceEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x14\n\x07\x62\x61lance\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_balance\x1a\x9a\x01\n\rTokenBalances\x12\x88\x01\n\x0etoken_balances\x18\x01 \x03(\x0b\x32p.org.dash.platform.dapi.v0.GetIdentityTokenBalancesResponse.GetIdentityTokenBalancesResponseV0.TokenBalanceEntryB\x08\n\x06resultB\t\n\x07version\"\xfc\x01\n!GetIdentitiesTokenBalancesRequest\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesRequest.GetIdentitiesTokenBalancesRequestV0H\x00\x1a\\\n#GetIdentitiesTokenBalancesRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x14\n\x0cidentity_ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xf2\x05\n\"GetIdentitiesTokenBalancesResponse\x12p\n\x02v0\x18\x01 \x01(\x0b\x32\x62.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesResponse.GetIdentitiesTokenBalancesResponseV0H\x00\x1a\xce\x04\n$GetIdentitiesTokenBalancesResponseV0\x12\x9b\x01\n\x17identity_token_balances\x18\x01 \x01(\x0b\x32x.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesResponse.GetIdentitiesTokenBalancesResponseV0.IdentityTokenBalancesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aR\n\x19IdentityTokenBalanceEntry\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x14\n\x07\x62\x61lance\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_balance\x1a\xb7\x01\n\x15IdentityTokenBalances\x12\x9d\x01\n\x17identity_token_balances\x18\x01 \x03(\x0b\x32|.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesResponse.GetIdentitiesTokenBalancesResponseV0.IdentityTokenBalanceEntryB\x08\n\x06resultB\t\n\x07version\"\xe8\x01\n\x1cGetIdentityTokenInfosRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetIdentityTokenInfosRequest.GetIdentityTokenInfosRequestV0H\x00\x1aW\n\x1eGetIdentityTokenInfosRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x11\n\ttoken_ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\x98\x06\n\x1dGetIdentityTokenInfosResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse.GetIdentityTokenInfosResponseV0H\x00\x1a\x83\x05\n\x1fGetIdentityTokenInfosResponseV0\x12z\n\x0btoken_infos\x18\x01 \x01(\x0b\x32\x63.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse.GetIdentityTokenInfosResponseV0.TokenInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a(\n\x16TokenIdentityInfoEntry\x12\x0e\n\x06\x66rozen\x18\x01 \x01(\x08\x1a\xb0\x01\n\x0eTokenInfoEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x82\x01\n\x04info\x18\x02 \x01(\x0b\x32o.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse.GetIdentityTokenInfosResponseV0.TokenIdentityInfoEntryH\x00\x88\x01\x01\x42\x07\n\x05_info\x1a\x8a\x01\n\nTokenInfos\x12|\n\x0btoken_infos\x18\x01 \x03(\x0b\x32g.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse.GetIdentityTokenInfosResponseV0.TokenInfoEntryB\x08\n\x06resultB\t\n\x07version\"\xf0\x01\n\x1eGetIdentitiesTokenInfosRequest\x12h\n\x02v0\x18\x01 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosRequest.GetIdentitiesTokenInfosRequestV0H\x00\x1aY\n GetIdentitiesTokenInfosRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x14\n\x0cidentity_ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xca\x06\n\x1fGetIdentitiesTokenInfosResponse\x12j\n\x02v0\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse.GetIdentitiesTokenInfosResponseV0H\x00\x1a\xaf\x05\n!GetIdentitiesTokenInfosResponseV0\x12\x8f\x01\n\x14identity_token_infos\x18\x01 \x01(\x0b\x32o.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse.GetIdentitiesTokenInfosResponseV0.IdentityTokenInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a(\n\x16TokenIdentityInfoEntry\x12\x0e\n\x06\x66rozen\x18\x01 \x01(\x08\x1a\xb7\x01\n\x0eTokenInfoEntry\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x86\x01\n\x04info\x18\x02 \x01(\x0b\x32s.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse.GetIdentitiesTokenInfosResponseV0.TokenIdentityInfoEntryH\x00\x88\x01\x01\x42\x07\n\x05_info\x1a\x97\x01\n\x12IdentityTokenInfos\x12\x80\x01\n\x0btoken_infos\x18\x01 \x03(\x0b\x32k.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse.GetIdentitiesTokenInfosResponseV0.TokenInfoEntryB\x08\n\x06resultB\t\n\x07version\"\xbf\x01\n\x17GetTokenStatusesRequest\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetTokenStatusesRequest.GetTokenStatusesRequestV0H\x00\x1a=\n\x19GetTokenStatusesRequestV0\x12\x11\n\ttoken_ids\x18\x01 \x03(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xe7\x04\n\x18GetTokenStatusesResponse\x12\\\n\x02v0\x18\x01 \x01(\x0b\x32N.org.dash.platform.dapi.v0.GetTokenStatusesResponse.GetTokenStatusesResponseV0H\x00\x1a\xe1\x03\n\x1aGetTokenStatusesResponseV0\x12v\n\x0etoken_statuses\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetTokenStatusesResponse.GetTokenStatusesResponseV0.TokenStatusesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x44\n\x10TokenStatusEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x13\n\x06paused\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_paused\x1a\x88\x01\n\rTokenStatuses\x12w\n\x0etoken_statuses\x18\x01 \x03(\x0b\x32_.org.dash.platform.dapi.v0.GetTokenStatusesResponse.GetTokenStatusesResponseV0.TokenStatusEntryB\x08\n\x06resultB\t\n\x07version\"\xef\x01\n#GetTokenDirectPurchasePricesRequest\x12r\n\x02v0\x18\x01 \x01(\x0b\x32\x64.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesRequest.GetTokenDirectPurchasePricesRequestV0H\x00\x1aI\n%GetTokenDirectPurchasePricesRequestV0\x12\x11\n\ttoken_ids\x18\x01 \x03(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x8b\t\n$GetTokenDirectPurchasePricesResponse\x12t\n\x02v0\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0H\x00\x1a\xe1\x07\n&GetTokenDirectPurchasePricesResponseV0\x12\xa9\x01\n\x1ctoken_direct_purchase_prices\x18\x01 \x01(\x0b\x32\x80\x01.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0.TokenDirectPurchasePricesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x33\n\x10PriceForQuantity\x12\x10\n\x08quantity\x18\x01 \x01(\x04\x12\r\n\x05price\x18\x02 \x01(\x04\x1a\xa7\x01\n\x0fPricingSchedule\x12\x93\x01\n\x12price_for_quantity\x18\x01 \x03(\x0b\x32w.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0.PriceForQuantity\x1a\xe4\x01\n\x1dTokenDirectPurchasePriceEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x15\n\x0b\x66ixed_price\x18\x02 \x01(\x04H\x00\x12\x90\x01\n\x0evariable_price\x18\x03 \x01(\x0b\x32v.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0.PricingScheduleH\x00\x42\x07\n\x05price\x1a\xc8\x01\n\x19TokenDirectPurchasePrices\x12\xaa\x01\n\x1btoken_direct_purchase_price\x18\x01 \x03(\x0b\x32\x84\x01.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0.TokenDirectPurchasePriceEntryB\x08\n\x06resultB\t\n\x07version\"\xce\x01\n\x1bGetTokenContractInfoRequest\x12\x62\n\x02v0\x18\x01 \x01(\x0b\x32T.org.dash.platform.dapi.v0.GetTokenContractInfoRequest.GetTokenContractInfoRequestV0H\x00\x1a@\n\x1dGetTokenContractInfoRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xfb\x03\n\x1cGetTokenContractInfoResponse\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetTokenContractInfoResponse.GetTokenContractInfoResponseV0H\x00\x1a\xe9\x02\n\x1eGetTokenContractInfoResponseV0\x12|\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32l.org.dash.platform.dapi.v0.GetTokenContractInfoResponse.GetTokenContractInfoResponseV0.TokenContractInfoDataH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aM\n\x15TokenContractInfoData\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17token_contract_position\x18\x02 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xef\x04\n)GetTokenPreProgrammedDistributionsRequest\x12~\n\x02v0\x18\x01 \x01(\x0b\x32p.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsRequest.GetTokenPreProgrammedDistributionsRequestV0H\x00\x1a\xb6\x03\n+GetTokenPreProgrammedDistributionsRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x98\x01\n\rstart_at_info\x18\x02 \x01(\x0b\x32|.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsRequest.GetTokenPreProgrammedDistributionsRequestV0.StartAtInfoH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\r\n\x05prove\x18\x04 \x01(\x08\x1a\x9a\x01\n\x0bStartAtInfo\x12\x15\n\rstart_time_ms\x18\x01 \x01(\x04\x12\x1c\n\x0fstart_recipient\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12%\n\x18start_recipient_included\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_start_recipientB\x1b\n\x19_start_recipient_includedB\x10\n\x0e_start_at_infoB\x08\n\x06_limitB\t\n\x07version\"\xec\x07\n*GetTokenPreProgrammedDistributionsResponse\x12\x80\x01\n\x02v0\x18\x01 \x01(\x0b\x32r.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse.GetTokenPreProgrammedDistributionsResponseV0H\x00\x1a\xaf\x06\n,GetTokenPreProgrammedDistributionsResponseV0\x12\xa5\x01\n\x13token_distributions\x18\x01 \x01(\x0b\x32\x85\x01.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse.GetTokenPreProgrammedDistributionsResponseV0.TokenDistributionsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a>\n\x16TokenDistributionEntry\x12\x14\n\x0crecipient_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x04\x1a\xd4\x01\n\x1bTokenTimedDistributionEntry\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\xa1\x01\n\rdistributions\x18\x02 \x03(\x0b\x32\x89\x01.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse.GetTokenPreProgrammedDistributionsResponseV0.TokenDistributionEntry\x1a\xc3\x01\n\x12TokenDistributions\x12\xac\x01\n\x13token_distributions\x18\x01 \x03(\x0b\x32\x8e\x01.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse.GetTokenPreProgrammedDistributionsResponseV0.TokenTimedDistributionEntryB\x08\n\x06resultB\t\n\x07version\"\x82\x04\n-GetTokenPerpetualDistributionLastClaimRequest\x12\x86\x01\n\x02v0\x18\x01 \x01(\x0b\x32x.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimRequest.GetTokenPerpetualDistributionLastClaimRequestV0H\x00\x1aI\n\x11\x43ontractTokenInfo\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17token_contract_position\x18\x02 \x01(\r\x1a\xf1\x01\n/GetTokenPerpetualDistributionLastClaimRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12v\n\rcontract_info\x18\x02 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimRequest.ContractTokenInfoH\x00\x88\x01\x01\x12\x13\n\x0bidentity_id\x18\x04 \x01(\x0c\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\x10\n\x0e_contract_infoB\t\n\x07version\"\x93\x05\n.GetTokenPerpetualDistributionLastClaimResponse\x12\x88\x01\n\x02v0\x18\x01 \x01(\x0b\x32z.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimResponse.GetTokenPerpetualDistributionLastClaimResponseV0H\x00\x1a\xca\x03\n0GetTokenPerpetualDistributionLastClaimResponseV0\x12\x9f\x01\n\nlast_claim\x18\x01 \x01(\x0b\x32\x88\x01.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimResponse.GetTokenPerpetualDistributionLastClaimResponseV0.LastClaimInfoH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1ax\n\rLastClaimInfo\x12\x1a\n\x0ctimestamp_ms\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x1a\n\x0c\x62lock_height\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x12\x0f\n\x05\x65poch\x18\x03 \x01(\rH\x00\x12\x13\n\traw_bytes\x18\x04 \x01(\x0cH\x00\x42\t\n\x07paid_atB\x08\n\x06resultB\t\n\x07version\"\xca\x01\n\x1aGetTokenTotalSupplyRequest\x12`\n\x02v0\x18\x01 \x01(\x0b\x32R.org.dash.platform.dapi.v0.GetTokenTotalSupplyRequest.GetTokenTotalSupplyRequestV0H\x00\x1a?\n\x1cGetTokenTotalSupplyRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xaf\x04\n\x1bGetTokenTotalSupplyResponse\x12\x62\n\x02v0\x18\x01 \x01(\x0b\x32T.org.dash.platform.dapi.v0.GetTokenTotalSupplyResponse.GetTokenTotalSupplyResponseV0H\x00\x1a\xa0\x03\n\x1dGetTokenTotalSupplyResponseV0\x12\x88\x01\n\x12token_total_supply\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetTokenTotalSupplyResponse.GetTokenTotalSupplyResponseV0.TokenTotalSupplyEntryH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1ax\n\x15TokenTotalSupplyEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x30\n(total_aggregated_amount_in_user_accounts\x18\x02 \x01(\x04\x12\x1b\n\x13total_system_amount\x18\x03 \x01(\x04\x42\x08\n\x06resultB\t\n\x07version\"\xd2\x01\n\x13GetGroupInfoRequest\x12R\n\x02v0\x18\x01 \x01(\x0b\x32\x44.org.dash.platform.dapi.v0.GetGroupInfoRequest.GetGroupInfoRequestV0H\x00\x1a\\\n\x15GetGroupInfoRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17group_contract_position\x18\x02 \x01(\r\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xd4\x05\n\x14GetGroupInfoResponse\x12T\n\x02v0\x18\x01 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetGroupInfoResponse.GetGroupInfoResponseV0H\x00\x1a\xda\x04\n\x16GetGroupInfoResponseV0\x12\x66\n\ngroup_info\x18\x01 \x01(\x0b\x32P.org.dash.platform.dapi.v0.GetGroupInfoResponse.GetGroupInfoResponseV0.GroupInfoH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x04 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x34\n\x10GroupMemberEntry\x12\x11\n\tmember_id\x18\x01 \x01(\x0c\x12\r\n\x05power\x18\x02 \x01(\r\x1a\x98\x01\n\x0eGroupInfoEntry\x12h\n\x07members\x18\x01 \x03(\x0b\x32W.org.dash.platform.dapi.v0.GetGroupInfoResponse.GetGroupInfoResponseV0.GroupMemberEntry\x12\x1c\n\x14group_required_power\x18\x02 \x01(\r\x1a\x8a\x01\n\tGroupInfo\x12n\n\ngroup_info\x18\x01 \x01(\x0b\x32U.org.dash.platform.dapi.v0.GetGroupInfoResponse.GetGroupInfoResponseV0.GroupInfoEntryH\x00\x88\x01\x01\x42\r\n\x0b_group_infoB\x08\n\x06resultB\t\n\x07version\"\xed\x03\n\x14GetGroupInfosRequest\x12T\n\x02v0\x18\x01 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetGroupInfosRequest.GetGroupInfosRequestV0H\x00\x1au\n\x1cStartAtGroupContractPosition\x12%\n\x1dstart_group_contract_position\x18\x01 \x01(\r\x12.\n&start_group_contract_position_included\x18\x02 \x01(\x08\x1a\xfc\x01\n\x16GetGroupInfosRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12{\n start_at_group_contract_position\x18\x02 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetGroupInfosRequest.StartAtGroupContractPositionH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\r\n\x05prove\x18\x04 \x01(\x08\x42#\n!_start_at_group_contract_positionB\x08\n\x06_countB\t\n\x07version\"\xff\x05\n\x15GetGroupInfosResponse\x12V\n\x02v0\x18\x01 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetGroupInfosResponse.GetGroupInfosResponseV0H\x00\x1a\x82\x05\n\x17GetGroupInfosResponseV0\x12j\n\x0bgroup_infos\x18\x01 \x01(\x0b\x32S.org.dash.platform.dapi.v0.GetGroupInfosResponse.GetGroupInfosResponseV0.GroupInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x04 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x34\n\x10GroupMemberEntry\x12\x11\n\tmember_id\x18\x01 \x01(\x0c\x12\r\n\x05power\x18\x02 \x01(\r\x1a\xc3\x01\n\x16GroupPositionInfoEntry\x12\x1f\n\x17group_contract_position\x18\x01 \x01(\r\x12j\n\x07members\x18\x02 \x03(\x0b\x32Y.org.dash.platform.dapi.v0.GetGroupInfosResponse.GetGroupInfosResponseV0.GroupMemberEntry\x12\x1c\n\x14group_required_power\x18\x03 \x01(\r\x1a\x82\x01\n\nGroupInfos\x12t\n\x0bgroup_infos\x18\x01 \x03(\x0b\x32_.org.dash.platform.dapi.v0.GetGroupInfosResponse.GetGroupInfosResponseV0.GroupPositionInfoEntryB\x08\n\x06resultB\t\n\x07version\"\xbe\x04\n\x16GetGroupActionsRequest\x12X\n\x02v0\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetGroupActionsRequest.GetGroupActionsRequestV0H\x00\x1aL\n\x0fStartAtActionId\x12\x17\n\x0fstart_action_id\x18\x01 \x01(\x0c\x12 \n\x18start_action_id_included\x18\x02 \x01(\x08\x1a\xc8\x02\n\x18GetGroupActionsRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17group_contract_position\x18\x02 \x01(\r\x12N\n\x06status\x18\x03 \x01(\x0e\x32>.org.dash.platform.dapi.v0.GetGroupActionsRequest.ActionStatus\x12\x62\n\x12start_at_action_id\x18\x04 \x01(\x0b\x32\x41.org.dash.platform.dapi.v0.GetGroupActionsRequest.StartAtActionIdH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\rH\x01\x88\x01\x01\x12\r\n\x05prove\x18\x06 \x01(\x08\x42\x15\n\x13_start_at_action_idB\x08\n\x06_count\"&\n\x0c\x41\x63tionStatus\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\n\n\x06\x43LOSED\x10\x01\x42\t\n\x07version\"\xd6\x1e\n\x17GetGroupActionsResponse\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0H\x00\x1a\xd3\x1d\n\x19GetGroupActionsResponseV0\x12r\n\rgroup_actions\x18\x01 \x01(\x0b\x32Y.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.GroupActionsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a[\n\tMintEvent\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x14\n\x0crecipient_id\x18\x02 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1a[\n\tBurnEvent\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x14\n\x0c\x62urn_from_id\x18\x02 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1aJ\n\x0b\x46reezeEvent\x12\x11\n\tfrozen_id\x18\x01 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1aL\n\rUnfreezeEvent\x12\x11\n\tfrozen_id\x18\x01 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1a\x66\n\x17\x44\x65stroyFrozenFundsEvent\x12\x11\n\tfrozen_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x04\x12\x18\n\x0bpublic_note\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1a\x64\n\x13SharedEncryptedNote\x12\x18\n\x10sender_key_index\x18\x01 \x01(\r\x12\x1b\n\x13recipient_key_index\x18\x02 \x01(\r\x12\x16\n\x0e\x65ncrypted_data\x18\x03 \x01(\x0c\x1a{\n\x15PersonalEncryptedNote\x12!\n\x19root_encryption_key_index\x18\x01 \x01(\r\x12\'\n\x1f\x64\x65rivation_encryption_key_index\x18\x02 \x01(\r\x12\x16\n\x0e\x65ncrypted_data\x18\x03 \x01(\x0c\x1a\xe9\x01\n\x14\x45mergencyActionEvent\x12\x81\x01\n\x0b\x61\x63tion_type\x18\x01 \x01(\x0e\x32l.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.EmergencyActionEvent.ActionType\x12\x18\n\x0bpublic_note\x18\x02 \x01(\tH\x00\x88\x01\x01\"#\n\nActionType\x12\t\n\x05PAUSE\x10\x00\x12\n\n\x06RESUME\x10\x01\x42\x0e\n\x0c_public_note\x1a\x64\n\x16TokenConfigUpdateEvent\x12 \n\x18token_config_update_item\x18\x01 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1a\xe6\x03\n\x1eUpdateDirectPurchasePriceEvent\x12\x15\n\x0b\x66ixed_price\x18\x01 \x01(\x04H\x00\x12\x95\x01\n\x0evariable_price\x18\x02 \x01(\x0b\x32{.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.UpdateDirectPurchasePriceEvent.PricingScheduleH\x00\x12\x18\n\x0bpublic_note\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a\x33\n\x10PriceForQuantity\x12\x10\n\x08quantity\x18\x01 \x01(\x04\x12\r\n\x05price\x18\x02 \x01(\x04\x1a\xac\x01\n\x0fPricingSchedule\x12\x98\x01\n\x12price_for_quantity\x18\x01 \x03(\x0b\x32|.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.UpdateDirectPurchasePriceEvent.PriceForQuantityB\x07\n\x05priceB\x0e\n\x0c_public_note\x1a\xfc\x02\n\x10GroupActionEvent\x12n\n\x0btoken_event\x18\x01 \x01(\x0b\x32W.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.TokenEventH\x00\x12t\n\x0e\x64ocument_event\x18\x02 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.DocumentEventH\x00\x12t\n\x0e\x63ontract_event\x18\x03 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.ContractEventH\x00\x42\x0c\n\nevent_type\x1a\x8b\x01\n\rDocumentEvent\x12r\n\x06\x63reate\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.DocumentCreateEventH\x00\x42\x06\n\x04type\x1a/\n\x13\x44ocumentCreateEvent\x12\x18\n\x10\x63reated_document\x18\x01 \x01(\x0c\x1a/\n\x13\x43ontractUpdateEvent\x12\x18\n\x10updated_contract\x18\x01 \x01(\x0c\x1a\x8b\x01\n\rContractEvent\x12r\n\x06update\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.ContractUpdateEventH\x00\x42\x06\n\x04type\x1a\xd1\x07\n\nTokenEvent\x12\x66\n\x04mint\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.MintEventH\x00\x12\x66\n\x04\x62urn\x18\x02 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.BurnEventH\x00\x12j\n\x06\x66reeze\x18\x03 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.FreezeEventH\x00\x12n\n\x08unfreeze\x18\x04 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.UnfreezeEventH\x00\x12\x84\x01\n\x14\x64\x65stroy_frozen_funds\x18\x05 \x01(\x0b\x32\x64.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.DestroyFrozenFundsEventH\x00\x12}\n\x10\x65mergency_action\x18\x06 \x01(\x0b\x32\x61.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.EmergencyActionEventH\x00\x12\x82\x01\n\x13token_config_update\x18\x07 \x01(\x0b\x32\x63.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.TokenConfigUpdateEventH\x00\x12\x83\x01\n\x0cupdate_price\x18\x08 \x01(\x0b\x32k.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.UpdateDirectPurchasePriceEventH\x00\x42\x06\n\x04type\x1a\x93\x01\n\x10GroupActionEntry\x12\x11\n\taction_id\x18\x01 \x01(\x0c\x12l\n\x05\x65vent\x18\x02 \x01(\x0b\x32].org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.GroupActionEvent\x1a\x84\x01\n\x0cGroupActions\x12t\n\rgroup_actions\x18\x01 \x03(\x0b\x32].org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.GroupActionEntryB\x08\n\x06resultB\t\n\x07version\"\x88\x03\n\x1cGetGroupActionSignersRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetGroupActionSignersRequest.GetGroupActionSignersRequestV0H\x00\x1a\xce\x01\n\x1eGetGroupActionSignersRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17group_contract_position\x18\x02 \x01(\r\x12T\n\x06status\x18\x03 \x01(\x0e\x32\x44.org.dash.platform.dapi.v0.GetGroupActionSignersRequest.ActionStatus\x12\x11\n\taction_id\x18\x04 \x01(\x0c\x12\r\n\x05prove\x18\x05 \x01(\x08\"&\n\x0c\x41\x63tionStatus\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\n\n\x06\x43LOSED\x10\x01\x42\t\n\x07version\"\x8b\x05\n\x1dGetGroupActionSignersResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0H\x00\x1a\xf6\x03\n\x1fGetGroupActionSignersResponseV0\x12\x8b\x01\n\x14group_action_signers\x18\x01 \x01(\x0b\x32k.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSignersH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x35\n\x11GroupActionSigner\x12\x11\n\tsigner_id\x18\x01 \x01(\x0c\x12\r\n\x05power\x18\x02 \x01(\r\x1a\x91\x01\n\x12GroupActionSigners\x12{\n\x07signers\x18\x01 \x03(\x0b\x32j.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSignerB\x08\n\x06resultB\t\n\x07version*Z\n\nKeyPurpose\x12\x12\n\x0e\x41UTHENTICATION\x10\x00\x12\x0e\n\nENCRYPTION\x10\x01\x12\x0e\n\nDECRYPTION\x10\x02\x12\x0c\n\x08TRANSFER\x10\x03\x12\n\n\x06VOTING\x10\x05\x32\xe5\x35\n\x08Platform\x12\x93\x01\n\x18\x62roadcastStateTransition\x12:.org.dash.platform.dapi.v0.BroadcastStateTransitionRequest\x1a;.org.dash.platform.dapi.v0.BroadcastStateTransitionResponse\x12l\n\x0bgetIdentity\x12-.org.dash.platform.dapi.v0.GetIdentityRequest\x1a..org.dash.platform.dapi.v0.GetIdentityResponse\x12x\n\x0fgetIdentityKeys\x12\x31.org.dash.platform.dapi.v0.GetIdentityKeysRequest\x1a\x32.org.dash.platform.dapi.v0.GetIdentityKeysResponse\x12\x96\x01\n\x19getIdentitiesContractKeys\x12;.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest\x1a<.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse\x12{\n\x10getIdentityNonce\x12\x32.org.dash.platform.dapi.v0.GetIdentityNonceRequest\x1a\x33.org.dash.platform.dapi.v0.GetIdentityNonceResponse\x12\x93\x01\n\x18getIdentityContractNonce\x12:.org.dash.platform.dapi.v0.GetIdentityContractNonceRequest\x1a;.org.dash.platform.dapi.v0.GetIdentityContractNonceResponse\x12\x81\x01\n\x12getIdentityBalance\x12\x34.org.dash.platform.dapi.v0.GetIdentityBalanceRequest\x1a\x35.org.dash.platform.dapi.v0.GetIdentityBalanceResponse\x12\x8a\x01\n\x15getIdentitiesBalances\x12\x37.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest\x1a\x38.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse\x12\xa2\x01\n\x1dgetIdentityBalanceAndRevision\x12?.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionRequest\x1a@.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse\x12\xaf\x01\n#getEvonodesProposedEpochBlocksByIds\x12\x45.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest\x1a\x41.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse\x12\xb3\x01\n%getEvonodesProposedEpochBlocksByRange\x12G.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest\x1a\x41.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse\x12x\n\x0fgetDataContract\x12\x31.org.dash.platform.dapi.v0.GetDataContractRequest\x1a\x32.org.dash.platform.dapi.v0.GetDataContractResponse\x12\x8d\x01\n\x16getDataContractHistory\x12\x38.org.dash.platform.dapi.v0.GetDataContractHistoryRequest\x1a\x39.org.dash.platform.dapi.v0.GetDataContractHistoryResponse\x12{\n\x10getDataContracts\x12\x32.org.dash.platform.dapi.v0.GetDataContractsRequest\x1a\x33.org.dash.platform.dapi.v0.GetDataContractsResponse\x12o\n\x0cgetDocuments\x12..org.dash.platform.dapi.v0.GetDocumentsRequest\x1a/.org.dash.platform.dapi.v0.GetDocumentsResponse\x12\x99\x01\n\x1agetIdentityByPublicKeyHash\x12<.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest\x1a=.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse\x12\xb4\x01\n#getIdentityByNonUniquePublicKeyHash\x12\x45.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashRequest\x1a\x46.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashResponse\x12\x9f\x01\n\x1cwaitForStateTransitionResult\x12>.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest\x1a?.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse\x12\x81\x01\n\x12getConsensusParams\x12\x34.org.dash.platform.dapi.v0.GetConsensusParamsRequest\x1a\x35.org.dash.platform.dapi.v0.GetConsensusParamsResponse\x12\xa5\x01\n\x1egetProtocolVersionUpgradeState\x12@.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest\x1a\x41.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse\x12\xb4\x01\n#getProtocolVersionUpgradeVoteStatus\x12\x45.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest\x1a\x46.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse\x12r\n\rgetEpochsInfo\x12/.org.dash.platform.dapi.v0.GetEpochsInfoRequest\x1a\x30.org.dash.platform.dapi.v0.GetEpochsInfoResponse\x12\x8d\x01\n\x16getFinalizedEpochInfos\x12\x38.org.dash.platform.dapi.v0.GetFinalizedEpochInfosRequest\x1a\x39.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse\x12\x8a\x01\n\x15getContestedResources\x12\x37.org.dash.platform.dapi.v0.GetContestedResourcesRequest\x1a\x38.org.dash.platform.dapi.v0.GetContestedResourcesResponse\x12\xa2\x01\n\x1dgetContestedResourceVoteState\x12?.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest\x1a@.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse\x12\xba\x01\n%getContestedResourceVotersForIdentity\x12G.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest\x1aH.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse\x12\xae\x01\n!getContestedResourceIdentityVotes\x12\x43.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest\x1a\x44.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse\x12\x8a\x01\n\x15getVotePollsByEndDate\x12\x37.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest\x1a\x38.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse\x12\xa5\x01\n\x1egetPrefundedSpecializedBalance\x12@.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest\x1a\x41.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse\x12\x96\x01\n\x19getTotalCreditsInPlatform\x12;.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest\x1a<.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse\x12x\n\x0fgetPathElements\x12\x31.org.dash.platform.dapi.v0.GetPathElementsRequest\x1a\x32.org.dash.platform.dapi.v0.GetPathElementsResponse\x12\x66\n\tgetStatus\x12+.org.dash.platform.dapi.v0.GetStatusRequest\x1a,.org.dash.platform.dapi.v0.GetStatusResponse\x12\x8a\x01\n\x15getCurrentQuorumsInfo\x12\x37.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest\x1a\x38.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse\x12\x93\x01\n\x18getIdentityTokenBalances\x12:.org.dash.platform.dapi.v0.GetIdentityTokenBalancesRequest\x1a;.org.dash.platform.dapi.v0.GetIdentityTokenBalancesResponse\x12\x99\x01\n\x1agetIdentitiesTokenBalances\x12<.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesRequest\x1a=.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesResponse\x12\x8a\x01\n\x15getIdentityTokenInfos\x12\x37.org.dash.platform.dapi.v0.GetIdentityTokenInfosRequest\x1a\x38.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse\x12\x90\x01\n\x17getIdentitiesTokenInfos\x12\x39.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosRequest\x1a:.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse\x12{\n\x10getTokenStatuses\x12\x32.org.dash.platform.dapi.v0.GetTokenStatusesRequest\x1a\x33.org.dash.platform.dapi.v0.GetTokenStatusesResponse\x12\x9f\x01\n\x1cgetTokenDirectPurchasePrices\x12>.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesRequest\x1a?.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse\x12\x87\x01\n\x14getTokenContractInfo\x12\x36.org.dash.platform.dapi.v0.GetTokenContractInfoRequest\x1a\x37.org.dash.platform.dapi.v0.GetTokenContractInfoResponse\x12\xb1\x01\n\"getTokenPreProgrammedDistributions\x12\x44.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsRequest\x1a\x45.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse\x12\xbd\x01\n&getTokenPerpetualDistributionLastClaim\x12H.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimRequest\x1aI.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimResponse\x12\x84\x01\n\x13getTokenTotalSupply\x12\x35.org.dash.platform.dapi.v0.GetTokenTotalSupplyRequest\x1a\x36.org.dash.platform.dapi.v0.GetTokenTotalSupplyResponse\x12o\n\x0cgetGroupInfo\x12..org.dash.platform.dapi.v0.GetGroupInfoRequest\x1a/.org.dash.platform.dapi.v0.GetGroupInfoResponse\x12r\n\rgetGroupInfos\x12/.org.dash.platform.dapi.v0.GetGroupInfosRequest\x1a\x30.org.dash.platform.dapi.v0.GetGroupInfosResponse\x12x\n\x0fgetGroupActions\x12\x31.org.dash.platform.dapi.v0.GetGroupActionsRequest\x1a\x32.org.dash.platform.dapi.v0.GetGroupActionsResponse\x12\x8a\x01\n\x15getGroupActionSigners\x12\x37.org.dash.platform.dapi.v0.GetGroupActionSignersRequest\x1a\x38.org.dash.platform.dapi.v0.GetGroupActionSignersResponseb\x06proto3' + serialized_pb=b'\n\x0eplatform.proto\x12\x19org.dash.platform.dapi.v0\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfd\x01\n\x1bPlatformSubscriptionRequest\x12\x62\n\x02v0\x18\x01 \x01(\x0b\x32T.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0H\x00\x1ao\n\x1dPlatformSubscriptionRequestV0\x12;\n\x06\x66ilter\x18\x01 \x01(\x0b\x32+.org.dash.platform.dapi.v0.PlatformFilterV0\x12\x11\n\tkeepalive\x18\x02 \x01(\rB\t\n\x07version\"\x85\x02\n\x1cPlatformSubscriptionResponse\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0H\x00\x1at\n\x1ePlatformSubscriptionResponseV0\x12\x17\n\x0fsubscription_id\x18\x01 \x01(\x04\x12\x39\n\x05\x65vent\x18\x02 \x01(\x0b\x32*.org.dash.platform.dapi.v0.PlatformEventV0B\t\n\x07version\"\x83\x03\n\x10PlatformFilterV0\x12\x44\n\x03\x61ll\x18\x01 \x01(\x0b\x32\x35.org.dash.platform.dapi.v0.PlatformFilterV0.AllEventsH\x00\x12U\n\x0f\x62lock_committed\x18\x02 \x01(\x0b\x32:.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommittedH\x00\x12j\n\x17state_transition_result\x18\x03 \x01(\x0b\x32G.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilterH\x00\x1a\x0b\n\tAllEvents\x1a\x10\n\x0e\x42lockCommitted\x1a?\n\x1bStateTransitionResultFilter\x12\x14\n\x07tx_hash\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\n\n\x08_tx_hashB\x06\n\x04kind\"\xe5\x04\n\x0fPlatformEventV0\x12T\n\x0f\x62lock_committed\x18\x01 \x01(\x0b\x32\x39.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommittedH\x00\x12i\n\x1astate_transition_finalized\x18\x02 \x01(\x0b\x32\x43.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalizedH\x00\x12I\n\tkeepalive\x18\x03 \x01(\x0b\x32\x34.org.dash.platform.dapi.v0.PlatformEventV0.KeepaliveH\x00\x1aO\n\rBlockMetadata\x12\x12\n\x06height\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x13\n\x07time_ms\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rblock_id_hash\x18\x03 \x01(\x0c\x1aj\n\x0e\x42lockCommitted\x12\x46\n\x04meta\x18\x01 \x01(\x0b\x32\x38.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata\x12\x10\n\x08tx_count\x18\x02 \x01(\r\x1as\n\x18StateTransitionFinalized\x12\x46\n\x04meta\x18\x01 \x01(\x0b\x32\x38.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata\x12\x0f\n\x07tx_hash\x18\x02 \x01(\x0c\x1a\x0b\n\tKeepaliveB\x07\n\x05\x65vent\"\x81\x01\n\x05Proof\x12\x15\n\rgrovedb_proof\x18\x01 \x01(\x0c\x12\x13\n\x0bquorum_hash\x18\x02 \x01(\x0c\x12\x11\n\tsignature\x18\x03 \x01(\x0c\x12\r\n\x05round\x18\x04 \x01(\r\x12\x15\n\rblock_id_hash\x18\x05 \x01(\x0c\x12\x13\n\x0bquorum_type\x18\x06 \x01(\r\"\x98\x01\n\x10ResponseMetadata\x12\x12\n\x06height\x18\x01 \x01(\x04\x42\x02\x30\x01\x12 \n\x18\x63ore_chain_locked_height\x18\x02 \x01(\r\x12\r\n\x05\x65poch\x18\x03 \x01(\r\x12\x13\n\x07time_ms\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x18\n\x10protocol_version\x18\x05 \x01(\r\x12\x10\n\x08\x63hain_id\x18\x06 \x01(\t\"L\n\x1dStateTransitionBroadcastError\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\";\n\x1f\x42roadcastStateTransitionRequest\x12\x18\n\x10state_transition\x18\x01 \x01(\x0c\"\"\n BroadcastStateTransitionResponse\"\xa4\x01\n\x12GetIdentityRequest\x12P\n\x02v0\x18\x01 \x01(\x0b\x32\x42.org.dash.platform.dapi.v0.GetIdentityRequest.GetIdentityRequestV0H\x00\x1a\x31\n\x14GetIdentityRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xc1\x01\n\x17GetIdentityNonceRequest\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetIdentityNonceRequest.GetIdentityNonceRequestV0H\x00\x1a?\n\x19GetIdentityNonceRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xf6\x01\n\x1fGetIdentityContractNonceRequest\x12j\n\x02v0\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetIdentityContractNonceRequest.GetIdentityContractNonceRequestV0H\x00\x1a\\\n!GetIdentityContractNonceRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63ontract_id\x18\x02 \x01(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xc0\x01\n\x19GetIdentityBalanceRequest\x12^\n\x02v0\x18\x01 \x01(\x0b\x32P.org.dash.platform.dapi.v0.GetIdentityBalanceRequest.GetIdentityBalanceRequestV0H\x00\x1a\x38\n\x1bGetIdentityBalanceRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xec\x01\n$GetIdentityBalanceAndRevisionRequest\x12t\n\x02v0\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionRequest.GetIdentityBalanceAndRevisionRequestV0H\x00\x1a\x43\n&GetIdentityBalanceAndRevisionRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x9e\x02\n\x13GetIdentityResponse\x12R\n\x02v0\x18\x01 \x01(\x0b\x32\x44.org.dash.platform.dapi.v0.GetIdentityResponse.GetIdentityResponseV0H\x00\x1a\xa7\x01\n\x15GetIdentityResponseV0\x12\x12\n\x08identity\x18\x01 \x01(\x0cH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xbc\x02\n\x18GetIdentityNonceResponse\x12\\\n\x02v0\x18\x01 \x01(\x0b\x32N.org.dash.platform.dapi.v0.GetIdentityNonceResponse.GetIdentityNonceResponseV0H\x00\x1a\xb6\x01\n\x1aGetIdentityNonceResponseV0\x12\x1c\n\x0eidentity_nonce\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xe5\x02\n GetIdentityContractNonceResponse\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetIdentityContractNonceResponse.GetIdentityContractNonceResponseV0H\x00\x1a\xc7\x01\n\"GetIdentityContractNonceResponseV0\x12%\n\x17identity_contract_nonce\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xbd\x02\n\x1aGetIdentityBalanceResponse\x12`\n\x02v0\x18\x01 \x01(\x0b\x32R.org.dash.platform.dapi.v0.GetIdentityBalanceResponse.GetIdentityBalanceResponseV0H\x00\x1a\xb1\x01\n\x1cGetIdentityBalanceResponseV0\x12\x15\n\x07\x62\x61lance\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xb1\x04\n%GetIdentityBalanceAndRevisionResponse\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse.GetIdentityBalanceAndRevisionResponseV0H\x00\x1a\x84\x03\n\'GetIdentityBalanceAndRevisionResponseV0\x12\x9b\x01\n\x14\x62\x61lance_and_revision\x18\x01 \x01(\x0b\x32{.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse.GetIdentityBalanceAndRevisionResponseV0.BalanceAndRevisionH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a?\n\x12\x42\x61lanceAndRevision\x12\x13\n\x07\x62\x61lance\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x14\n\x08revision\x18\x02 \x01(\x04\x42\x02\x30\x01\x42\x08\n\x06resultB\t\n\x07version\"\xd1\x01\n\x0eKeyRequestType\x12\x36\n\x08\x61ll_keys\x18\x01 \x01(\x0b\x32\".org.dash.platform.dapi.v0.AllKeysH\x00\x12@\n\rspecific_keys\x18\x02 \x01(\x0b\x32\'.org.dash.platform.dapi.v0.SpecificKeysH\x00\x12:\n\nsearch_key\x18\x03 \x01(\x0b\x32$.org.dash.platform.dapi.v0.SearchKeyH\x00\x42\t\n\x07request\"\t\n\x07\x41llKeys\"\x1f\n\x0cSpecificKeys\x12\x0f\n\x07key_ids\x18\x01 \x03(\r\"\xb6\x01\n\tSearchKey\x12I\n\x0bpurpose_map\x18\x01 \x03(\x0b\x32\x34.org.dash.platform.dapi.v0.SearchKey.PurposeMapEntry\x1a^\n\x0fPurposeMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.org.dash.platform.dapi.v0.SecurityLevelMap:\x02\x38\x01\"\xbf\x02\n\x10SecurityLevelMap\x12]\n\x12security_level_map\x18\x01 \x03(\x0b\x32\x41.org.dash.platform.dapi.v0.SecurityLevelMap.SecurityLevelMapEntry\x1aw\n\x15SecurityLevelMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12M\n\x05value\x18\x02 \x01(\x0e\x32>.org.dash.platform.dapi.v0.SecurityLevelMap.KeyKindRequestType:\x02\x38\x01\"S\n\x12KeyKindRequestType\x12\x1f\n\x1b\x43URRENT_KEY_OF_KIND_REQUEST\x10\x00\x12\x1c\n\x18\x41LL_KEYS_OF_KIND_REQUEST\x10\x01\"\xda\x02\n\x16GetIdentityKeysRequest\x12X\n\x02v0\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetIdentityKeysRequest.GetIdentityKeysRequestV0H\x00\x1a\xda\x01\n\x18GetIdentityKeysRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12?\n\x0crequest_type\x18\x02 \x01(\x0b\x32).org.dash.platform.dapi.v0.KeyRequestType\x12+\n\x05limit\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12,\n\x06offset\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\t\n\x07version\"\x99\x03\n\x17GetIdentityKeysResponse\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetIdentityKeysResponse.GetIdentityKeysResponseV0H\x00\x1a\x96\x02\n\x19GetIdentityKeysResponseV0\x12\x61\n\x04keys\x18\x01 \x01(\x0b\x32Q.org.dash.platform.dapi.v0.GetIdentityKeysResponse.GetIdentityKeysResponseV0.KeysH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x1a\n\x04Keys\x12\x12\n\nkeys_bytes\x18\x01 \x03(\x0c\x42\x08\n\x06resultB\t\n\x07version\"\xef\x02\n GetIdentitiesContractKeysRequest\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest.GetIdentitiesContractKeysRequestV0H\x00\x1a\xd1\x01\n\"GetIdentitiesContractKeysRequestV0\x12\x16\n\x0eidentities_ids\x18\x01 \x03(\x0c\x12\x13\n\x0b\x63ontract_id\x18\x02 \x01(\x0c\x12\x1f\n\x12\x64ocument_type_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x08purposes\x18\x04 \x03(\x0e\x32%.org.dash.platform.dapi.v0.KeyPurpose\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\x15\n\x13_document_type_nameB\t\n\x07version\"\xdf\x06\n!GetIdentitiesContractKeysResponse\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0H\x00\x1a\xbe\x05\n#GetIdentitiesContractKeysResponseV0\x12\x8a\x01\n\x0fidentities_keys\x18\x01 \x01(\x0b\x32o.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentitiesKeysH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aY\n\x0bPurposeKeys\x12\x36\n\x07purpose\x18\x01 \x01(\x0e\x32%.org.dash.platform.dapi.v0.KeyPurpose\x12\x12\n\nkeys_bytes\x18\x02 \x03(\x0c\x1a\x9f\x01\n\x0cIdentityKeys\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12z\n\x04keys\x18\x02 \x03(\x0b\x32l.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.PurposeKeys\x1a\x90\x01\n\x0eIdentitiesKeys\x12~\n\x07\x65ntries\x18\x01 \x03(\x0b\x32m.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentityKeysB\x08\n\x06resultB\t\n\x07version\"\xa4\x02\n*GetEvonodesProposedEpochBlocksByIdsRequest\x12\x80\x01\n\x02v0\x18\x01 \x01(\x0b\x32r.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0H\x00\x1ah\n,GetEvonodesProposedEpochBlocksByIdsRequestV0\x12\x12\n\x05\x65poch\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0b\n\x03ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\x08\n\x06_epochB\t\n\x07version\"\x92\x06\n&GetEvonodesProposedEpochBlocksResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0H\x00\x1a\xe2\x04\n(GetEvonodesProposedEpochBlocksResponseV0\x12\xb1\x01\n#evonodes_proposed_block_counts_info\x18\x01 \x01(\x0b\x32\x81\x01.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocksH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a?\n\x15\x45vonodeProposedBlocks\x12\x13\n\x0bpro_tx_hash\x18\x01 \x01(\x0c\x12\x11\n\x05\x63ount\x18\x02 \x01(\x04\x42\x02\x30\x01\x1a\xc4\x01\n\x16\x45vonodesProposedBlocks\x12\xa9\x01\n\x1e\x65vonodes_proposed_block_counts\x18\x01 \x03(\x0b\x32\x80\x01.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocksB\x08\n\x06resultB\t\n\x07version\"\xf2\x02\n,GetEvonodesProposedEpochBlocksByRangeRequest\x12\x84\x01\n\x02v0\x18\x01 \x01(\x0b\x32v.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0H\x00\x1a\xaf\x01\n.GetEvonodesProposedEpochBlocksByRangeRequestV0\x12\x12\n\x05\x65poch\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\rH\x02\x88\x01\x01\x12\x15\n\x0bstart_after\x18\x03 \x01(\x0cH\x00\x12\x12\n\x08start_at\x18\x04 \x01(\x0cH\x00\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\x07\n\x05startB\x08\n\x06_epochB\x08\n\x06_limitB\t\n\x07version\"\xcd\x01\n\x1cGetIdentitiesBalancesRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0H\x00\x1a<\n\x1eGetIdentitiesBalancesRequestV0\x12\x0b\n\x03ids\x18\x01 \x03(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x9f\x05\n\x1dGetIdentitiesBalancesResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0H\x00\x1a\x8a\x04\n\x1fGetIdentitiesBalancesResponseV0\x12\x8a\x01\n\x13identities_balances\x18\x01 \x01(\x0b\x32k.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalancesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aL\n\x0fIdentityBalance\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x42\n\n\x08_balance\x1a\x8f\x01\n\x12IdentitiesBalances\x12y\n\x07\x65ntries\x18\x01 \x03(\x0b\x32h.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalanceB\x08\n\x06resultB\t\n\x07version\"\xb4\x01\n\x16GetDataContractRequest\x12X\n\x02v0\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0H\x00\x1a\x35\n\x18GetDataContractRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xb3\x02\n\x17GetDataContractResponse\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0H\x00\x1a\xb0\x01\n\x19GetDataContractResponseV0\x12\x17\n\rdata_contract\x18\x01 \x01(\x0cH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xb9\x01\n\x17GetDataContractsRequest\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0H\x00\x1a\x37\n\x19GetDataContractsRequestV0\x12\x0b\n\x03ids\x18\x01 \x03(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xcf\x04\n\x18GetDataContractsResponse\x12\\\n\x02v0\x18\x01 \x01(\x0b\x32N.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0H\x00\x1a[\n\x11\x44\x61taContractEntry\x12\x12\n\nidentifier\x18\x01 \x01(\x0c\x12\x32\n\rdata_contract\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x1au\n\rDataContracts\x12\x64\n\x15\x64\x61ta_contract_entries\x18\x01 \x03(\x0b\x32\x45.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry\x1a\xf5\x01\n\x1aGetDataContractsResponseV0\x12[\n\x0e\x64\x61ta_contracts\x18\x01 \x01(\x0b\x32\x41.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xc5\x02\n\x1dGetDataContractHistoryRequest\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0H\x00\x1a\xb0\x01\n\x1fGetDataContractHistoryRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12+\n\x05limit\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12,\n\x06offset\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x17\n\x0bstart_at_ms\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\t\n\x07version\"\xb2\x05\n\x1eGetDataContractHistoryResponse\x12h\n\x02v0\x18\x01 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0H\x00\x1a\x9a\x04\n GetDataContractHistoryResponseV0\x12\x8f\x01\n\x15\x64\x61ta_contract_history\x18\x01 \x01(\x0b\x32n.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a;\n\x18\x44\x61taContractHistoryEntry\x12\x10\n\x04\x64\x61te\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\r\n\x05value\x18\x02 \x01(\x0c\x1a\xaa\x01\n\x13\x44\x61taContractHistory\x12\x92\x01\n\x15\x64\x61ta_contract_entries\x18\x01 \x03(\x0b\x32s.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntryB\x08\n\x06resultB\t\n\x07version\"\xb2\x02\n\x13GetDocumentsRequest\x12R\n\x02v0\x18\x01 \x01(\x0b\x32\x44.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0H\x00\x1a\xbb\x01\n\x15GetDocumentsRequestV0\x12\x18\n\x10\x64\x61ta_contract_id\x18\x01 \x01(\x0c\x12\x15\n\rdocument_type\x18\x02 \x01(\t\x12\r\n\x05where\x18\x03 \x01(\x0c\x12\x10\n\x08order_by\x18\x04 \x01(\x0c\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x15\n\x0bstart_after\x18\x06 \x01(\x0cH\x00\x12\x12\n\x08start_at\x18\x07 \x01(\x0cH\x00\x12\r\n\x05prove\x18\x08 \x01(\x08\x42\x07\n\x05startB\t\n\x07version\"\x95\x03\n\x14GetDocumentsResponse\x12T\n\x02v0\x18\x01 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0H\x00\x1a\x9b\x02\n\x16GetDocumentsResponseV0\x12\x65\n\tdocuments\x18\x01 \x01(\x0b\x32P.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.DocumentsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x1e\n\tDocuments\x12\x11\n\tdocuments\x18\x01 \x03(\x0c\x42\x08\n\x06resultB\t\n\x07version\"\xed\x01\n!GetIdentityByPublicKeyHashRequest\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0H\x00\x1aM\n#GetIdentityByPublicKeyHashRequestV0\x12\x17\n\x0fpublic_key_hash\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xda\x02\n\"GetIdentityByPublicKeyHashResponse\x12p\n\x02v0\x18\x01 \x01(\x0b\x32\x62.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0H\x00\x1a\xb6\x01\n$GetIdentityByPublicKeyHashResponseV0\x12\x12\n\x08identity\x18\x01 \x01(\x0cH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xbd\x02\n*GetIdentityByNonUniquePublicKeyHashRequest\x12\x80\x01\n\x02v0\x18\x01 \x01(\x0b\x32r.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashRequest.GetIdentityByNonUniquePublicKeyHashRequestV0H\x00\x1a\x80\x01\n,GetIdentityByNonUniquePublicKeyHashRequestV0\x12\x17\n\x0fpublic_key_hash\x18\x01 \x01(\x0c\x12\x18\n\x0bstart_after\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\x0e\n\x0c_start_afterB\t\n\x07version\"\xd6\x06\n+GetIdentityByNonUniquePublicKeyHashResponse\x12\x82\x01\n\x02v0\x18\x01 \x01(\x0b\x32t.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashResponse.GetIdentityByNonUniquePublicKeyHashResponseV0H\x00\x1a\x96\x05\n-GetIdentityByNonUniquePublicKeyHashResponseV0\x12\x9a\x01\n\x08identity\x18\x01 \x01(\x0b\x32\x85\x01.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashResponse.GetIdentityByNonUniquePublicKeyHashResponseV0.IdentityResponseH\x00\x12\x9d\x01\n\x05proof\x18\x02 \x01(\x0b\x32\x8b\x01.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashResponse.GetIdentityByNonUniquePublicKeyHashResponseV0.IdentityProvedResponseH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x36\n\x10IdentityResponse\x12\x15\n\x08identity\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_identity\x1a\xa6\x01\n\x16IdentityProvedResponse\x12P\n&grovedb_identity_public_key_hash_proof\x18\x01 \x01(\x0b\x32 .org.dash.platform.dapi.v0.Proof\x12!\n\x14identity_proof_bytes\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x17\n\x15_identity_proof_bytesB\x08\n\x06resultB\t\n\x07version\"\xfb\x01\n#WaitForStateTransitionResultRequest\x12r\n\x02v0\x18\x01 \x01(\x0b\x32\x64.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0H\x00\x1aU\n%WaitForStateTransitionResultRequestV0\x12\x1d\n\x15state_transition_hash\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x99\x03\n$WaitForStateTransitionResultResponse\x12t\n\x02v0\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0H\x00\x1a\xef\x01\n&WaitForStateTransitionResultResponseV0\x12I\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x38.org.dash.platform.dapi.v0.StateTransitionBroadcastErrorH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xc4\x01\n\x19GetConsensusParamsRequest\x12^\n\x02v0\x18\x01 \x01(\x0b\x32P.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0H\x00\x1a<\n\x1bGetConsensusParamsRequestV0\x12\x0e\n\x06height\x18\x01 \x01(\x05\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x9c\x04\n\x1aGetConsensusParamsResponse\x12`\n\x02v0\x18\x01 \x01(\x0b\x32R.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0H\x00\x1aP\n\x14\x43onsensusParamsBlock\x12\x11\n\tmax_bytes\x18\x01 \x01(\t\x12\x0f\n\x07max_gas\x18\x02 \x01(\t\x12\x14\n\x0ctime_iota_ms\x18\x03 \x01(\t\x1a\x62\n\x17\x43onsensusParamsEvidence\x12\x1a\n\x12max_age_num_blocks\x18\x01 \x01(\t\x12\x18\n\x10max_age_duration\x18\x02 \x01(\t\x12\x11\n\tmax_bytes\x18\x03 \x01(\t\x1a\xda\x01\n\x1cGetConsensusParamsResponseV0\x12Y\n\x05\x62lock\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock\x12_\n\x08\x65vidence\x18\x02 \x01(\x0b\x32M.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidenceB\t\n\x07version\"\xe4\x01\n%GetProtocolVersionUpgradeStateRequest\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0H\x00\x1a\x38\n\'GetProtocolVersionUpgradeStateRequestV0\x12\r\n\x05prove\x18\x01 \x01(\x08\x42\t\n\x07version\"\xb5\x05\n&GetProtocolVersionUpgradeStateResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0H\x00\x1a\x85\x04\n(GetProtocolVersionUpgradeStateResponseV0\x12\x87\x01\n\x08versions\x18\x01 \x01(\x0b\x32s.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x96\x01\n\x08Versions\x12\x89\x01\n\x08versions\x18\x01 \x03(\x0b\x32w.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry\x1a:\n\x0cVersionEntry\x12\x16\n\x0eversion_number\x18\x01 \x01(\r\x12\x12\n\nvote_count\x18\x02 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xa3\x02\n*GetProtocolVersionUpgradeVoteStatusRequest\x12\x80\x01\n\x02v0\x18\x01 \x01(\x0b\x32r.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0H\x00\x1ag\n,GetProtocolVersionUpgradeVoteStatusRequestV0\x12\x19\n\x11start_pro_tx_hash\x18\x01 \x01(\x0c\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xef\x05\n+GetProtocolVersionUpgradeVoteStatusResponse\x12\x82\x01\n\x02v0\x18\x01 \x01(\x0b\x32t.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0H\x00\x1a\xaf\x04\n-GetProtocolVersionUpgradeVoteStatusResponseV0\x12\x98\x01\n\x08versions\x18\x01 \x01(\x0b\x32\x83\x01.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignalsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\xaf\x01\n\x0eVersionSignals\x12\x9c\x01\n\x0fversion_signals\x18\x01 \x03(\x0b\x32\x82\x01.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal\x1a\x35\n\rVersionSignal\x12\x13\n\x0bpro_tx_hash\x18\x01 \x01(\x0c\x12\x0f\n\x07version\x18\x02 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xf5\x01\n\x14GetEpochsInfoRequest\x12T\n\x02v0\x18\x01 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0H\x00\x1a|\n\x16GetEpochsInfoRequestV0\x12\x31\n\x0bstart_epoch\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x11\n\tascending\x18\x03 \x01(\x08\x12\r\n\x05prove\x18\x04 \x01(\x08\x42\t\n\x07version\"\x99\x05\n\x15GetEpochsInfoResponse\x12V\n\x02v0\x18\x01 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0H\x00\x1a\x9c\x04\n\x17GetEpochsInfoResponseV0\x12\x65\n\x06\x65pochs\x18\x01 \x01(\x0b\x32S.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1au\n\nEpochInfos\x12g\n\x0b\x65poch_infos\x18\x01 \x03(\x0b\x32R.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo\x1a\xa6\x01\n\tEpochInfo\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x1e\n\x12\x66irst_block_height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1f\n\x17\x66irst_core_block_height\x18\x03 \x01(\r\x12\x16\n\nstart_time\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x16\n\x0e\x66\x65\x65_multiplier\x18\x05 \x01(\x01\x12\x18\n\x10protocol_version\x18\x06 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xbf\x02\n\x1dGetFinalizedEpochInfosRequest\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetFinalizedEpochInfosRequest.GetFinalizedEpochInfosRequestV0H\x00\x1a\xaa\x01\n\x1fGetFinalizedEpochInfosRequestV0\x12\x19\n\x11start_epoch_index\x18\x01 \x01(\r\x12\"\n\x1astart_epoch_index_included\x18\x02 \x01(\x08\x12\x17\n\x0f\x65nd_epoch_index\x18\x03 \x01(\r\x12 \n\x18\x65nd_epoch_index_included\x18\x04 \x01(\x08\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\t\n\x07version\"\xbd\t\n\x1eGetFinalizedEpochInfosResponse\x12h\n\x02v0\x18\x01 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse.GetFinalizedEpochInfosResponseV0H\x00\x1a\xa5\x08\n GetFinalizedEpochInfosResponseV0\x12\x80\x01\n\x06\x65pochs\x18\x01 \x01(\x0b\x32n.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse.GetFinalizedEpochInfosResponseV0.FinalizedEpochInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\xa4\x01\n\x13\x46inalizedEpochInfos\x12\x8c\x01\n\x15\x66inalized_epoch_infos\x18\x01 \x03(\x0b\x32m.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse.GetFinalizedEpochInfosResponseV0.FinalizedEpochInfo\x1a\x9f\x04\n\x12\x46inalizedEpochInfo\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x1e\n\x12\x66irst_block_height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1f\n\x17\x66irst_core_block_height\x18\x03 \x01(\r\x12\x1c\n\x10\x66irst_block_time\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x16\n\x0e\x66\x65\x65_multiplier\x18\x05 \x01(\x01\x12\x18\n\x10protocol_version\x18\x06 \x01(\r\x12!\n\x15total_blocks_in_epoch\x18\x07 \x01(\x04\x42\x02\x30\x01\x12*\n\"next_epoch_start_core_block_height\x18\x08 \x01(\r\x12!\n\x15total_processing_fees\x18\t \x01(\x04\x42\x02\x30\x01\x12*\n\x1etotal_distributed_storage_fees\x18\n \x01(\x04\x42\x02\x30\x01\x12&\n\x1atotal_created_storage_fees\x18\x0b \x01(\x04\x42\x02\x30\x01\x12\x1e\n\x12\x63ore_block_rewards\x18\x0c \x01(\x04\x42\x02\x30\x01\x12\x81\x01\n\x0f\x62lock_proposers\x18\r \x03(\x0b\x32h.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse.GetFinalizedEpochInfosResponseV0.BlockProposer\x1a\x39\n\rBlockProposer\x12\x13\n\x0bproposer_id\x18\x01 \x01(\x0c\x12\x13\n\x0b\x62lock_count\x18\x02 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xde\x04\n\x1cGetContestedResourcesRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0H\x00\x1a\xcc\x03\n\x1eGetContestedResourcesRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1a\n\x12\x64ocument_type_name\x18\x02 \x01(\t\x12\x12\n\nindex_name\x18\x03 \x01(\t\x12\x1a\n\x12start_index_values\x18\x04 \x03(\x0c\x12\x18\n\x10\x65nd_index_values\x18\x05 \x03(\x0c\x12\x89\x01\n\x13start_at_value_info\x18\x06 \x01(\x0b\x32g.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfoH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x07 \x01(\rH\x01\x88\x01\x01\x12\x17\n\x0forder_ascending\x18\x08 \x01(\x08\x12\r\n\x05prove\x18\t \x01(\x08\x1a\x45\n\x10StartAtValueInfo\x12\x13\n\x0bstart_value\x18\x01 \x01(\x0c\x12\x1c\n\x14start_value_included\x18\x02 \x01(\x08\x42\x16\n\x14_start_at_value_infoB\x08\n\x06_countB\t\n\x07version\"\x88\x04\n\x1dGetContestedResourcesResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0H\x00\x1a\xf3\x02\n\x1fGetContestedResourcesResponseV0\x12\x95\x01\n\x19\x63ontested_resource_values\x18\x01 \x01(\x0b\x32p.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValuesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a<\n\x17\x43ontestedResourceValues\x12!\n\x19\x63ontested_resource_values\x18\x01 \x03(\x0c\x42\x08\n\x06resultB\t\n\x07version\"\xd2\x05\n\x1cGetVotePollsByEndDateRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0H\x00\x1a\xc0\x04\n\x1eGetVotePollsByEndDateRequestV0\x12\x84\x01\n\x0fstart_time_info\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfoH\x00\x88\x01\x01\x12\x80\x01\n\rend_time_info\x18\x02 \x01(\x0b\x32\x64.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfoH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x13\n\x06offset\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x11\n\tascending\x18\x05 \x01(\x08\x12\r\n\x05prove\x18\x06 \x01(\x08\x1aI\n\x0fStartAtTimeInfo\x12\x19\n\rstart_time_ms\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x1b\n\x13start_time_included\x18\x02 \x01(\x08\x1a\x43\n\rEndAtTimeInfo\x12\x17\n\x0b\x65nd_time_ms\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x65nd_time_included\x18\x02 \x01(\x08\x42\x12\n\x10_start_time_infoB\x10\n\x0e_end_time_infoB\x08\n\x06_limitB\t\n\x07_offsetB\t\n\x07version\"\x83\x06\n\x1dGetVotePollsByEndDateResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0H\x00\x1a\xee\x04\n\x1fGetVotePollsByEndDateResponseV0\x12\x9c\x01\n\x18vote_polls_by_timestamps\x18\x01 \x01(\x0b\x32x.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestampsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aV\n\x1eSerializedVotePollsByTimestamp\x12\x15\n\ttimestamp\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x1d\n\x15serialized_vote_polls\x18\x02 \x03(\x0c\x1a\xd7\x01\n\x1fSerializedVotePollsByTimestamps\x12\x99\x01\n\x18vote_polls_by_timestamps\x18\x01 \x03(\x0b\x32w.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp\x12\x18\n\x10\x66inished_results\x18\x02 \x01(\x08\x42\x08\n\x06resultB\t\n\x07version\"\xff\x06\n$GetContestedResourceVoteStateRequest\x12t\n\x02v0\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0H\x00\x1a\xd5\x05\n&GetContestedResourceVoteStateRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1a\n\x12\x64ocument_type_name\x18\x02 \x01(\t\x12\x12\n\nindex_name\x18\x03 \x01(\t\x12\x14\n\x0cindex_values\x18\x04 \x03(\x0c\x12\x86\x01\n\x0bresult_type\x18\x05 \x01(\x0e\x32q.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType\x12\x36\n.allow_include_locked_and_abstaining_vote_tally\x18\x06 \x01(\x08\x12\xa3\x01\n\x18start_at_identifier_info\x18\x07 \x01(\x0b\x32|.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfoH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x08 \x01(\rH\x01\x88\x01\x01\x12\r\n\x05prove\x18\t \x01(\x08\x1aT\n\x15StartAtIdentifierInfo\x12\x18\n\x10start_identifier\x18\x01 \x01(\x0c\x12!\n\x19start_identifier_included\x18\x02 \x01(\x08\"I\n\nResultType\x12\r\n\tDOCUMENTS\x10\x00\x12\x0e\n\nVOTE_TALLY\x10\x01\x12\x1c\n\x18\x44OCUMENTS_AND_VOTE_TALLY\x10\x02\x42\x1b\n\x19_start_at_identifier_infoB\x08\n\x06_countB\t\n\x07version\"\x94\x0c\n%GetContestedResourceVoteStateResponse\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0H\x00\x1a\xe7\n\n\'GetContestedResourceVoteStateResponseV0\x12\xae\x01\n\x1d\x63ontested_resource_contenders\x18\x01 \x01(\x0b\x32\x84\x01.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContendersH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\xda\x03\n\x10\x46inishedVoteInfo\x12\xad\x01\n\x15\x66inished_vote_outcome\x18\x01 \x01(\x0e\x32\x8d\x01.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome\x12\x1f\n\x12won_by_identity_id\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12$\n\x18\x66inished_at_block_height\x18\x03 \x01(\x04\x42\x02\x30\x01\x12%\n\x1d\x66inished_at_core_block_height\x18\x04 \x01(\r\x12%\n\x19\x66inished_at_block_time_ms\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x66inished_at_epoch\x18\x06 \x01(\r\"O\n\x13\x46inishedVoteOutcome\x12\x14\n\x10TOWARDS_IDENTITY\x10\x00\x12\n\n\x06LOCKED\x10\x01\x12\x16\n\x12NO_PREVIOUS_WINNER\x10\x02\x42\x15\n\x13_won_by_identity_id\x1a\xc4\x03\n\x1b\x43ontestedResourceContenders\x12\x86\x01\n\ncontenders\x18\x01 \x03(\x0b\x32r.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender\x12\x1f\n\x12\x61\x62stain_vote_tally\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flock_vote_tally\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x9a\x01\n\x12\x66inished_vote_info\x18\x04 \x01(\x0b\x32y.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfoH\x02\x88\x01\x01\x42\x15\n\x13_abstain_vote_tallyB\x12\n\x10_lock_vote_tallyB\x15\n\x13_finished_vote_info\x1ak\n\tContender\x12\x12\n\nidentifier\x18\x01 \x01(\x0c\x12\x17\n\nvote_count\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08\x64ocument\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x42\r\n\x0b_vote_countB\x0b\n\t_documentB\x08\n\x06resultB\t\n\x07version\"\xd5\x05\n,GetContestedResourceVotersForIdentityRequest\x12\x84\x01\n\x02v0\x18\x01 \x01(\x0b\x32v.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0H\x00\x1a\x92\x04\n.GetContestedResourceVotersForIdentityRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1a\n\x12\x64ocument_type_name\x18\x02 \x01(\t\x12\x12\n\nindex_name\x18\x03 \x01(\t\x12\x14\n\x0cindex_values\x18\x04 \x03(\x0c\x12\x15\n\rcontestant_id\x18\x05 \x01(\x0c\x12\xb4\x01\n\x18start_at_identifier_info\x18\x06 \x01(\x0b\x32\x8c\x01.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfoH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x07 \x01(\rH\x01\x88\x01\x01\x12\x17\n\x0forder_ascending\x18\x08 \x01(\x08\x12\r\n\x05prove\x18\t \x01(\x08\x1aT\n\x15StartAtIdentifierInfo\x12\x18\n\x10start_identifier\x18\x01 \x01(\x0c\x12!\n\x19start_identifier_included\x18\x02 \x01(\x08\x42\x1b\n\x19_start_at_identifier_infoB\x08\n\x06_countB\t\n\x07version\"\xf1\x04\n-GetContestedResourceVotersForIdentityResponse\x12\x86\x01\n\x02v0\x18\x01 \x01(\x0b\x32x.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0H\x00\x1a\xab\x03\n/GetContestedResourceVotersForIdentityResponseV0\x12\xb6\x01\n\x19\x63ontested_resource_voters\x18\x01 \x01(\x0b\x32\x90\x01.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVotersH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x43\n\x17\x43ontestedResourceVoters\x12\x0e\n\x06voters\x18\x01 \x03(\x0c\x12\x18\n\x10\x66inished_results\x18\x02 \x01(\x08\x42\x08\n\x06resultB\t\n\x07version\"\xad\x05\n(GetContestedResourceIdentityVotesRequest\x12|\n\x02v0\x18\x01 \x01(\x0b\x32n.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0H\x00\x1a\xf7\x03\n*GetContestedResourceIdentityVotesRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12+\n\x05limit\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12,\n\x06offset\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x17\n\x0forder_ascending\x18\x04 \x01(\x08\x12\xae\x01\n\x1astart_at_vote_poll_id_info\x18\x05 \x01(\x0b\x32\x84\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfoH\x00\x88\x01\x01\x12\r\n\x05prove\x18\x06 \x01(\x08\x1a\x61\n\x15StartAtVotePollIdInfo\x12 \n\x18start_at_poll_identifier\x18\x01 \x01(\x0c\x12&\n\x1estart_poll_identifier_included\x18\x02 \x01(\x08\x42\x1d\n\x1b_start_at_vote_poll_id_infoB\t\n\x07version\"\xc8\n\n)GetContestedResourceIdentityVotesResponse\x12~\n\x02v0\x18\x01 \x01(\x0b\x32p.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0H\x00\x1a\x8f\t\n+GetContestedResourceIdentityVotesResponseV0\x12\xa1\x01\n\x05votes\x18\x01 \x01(\x0b\x32\x8f\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\xf7\x01\n\x1e\x43ontestedResourceIdentityVotes\x12\xba\x01\n!contested_resource_identity_votes\x18\x01 \x03(\x0b\x32\x8e\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote\x12\x18\n\x10\x66inished_results\x18\x02 \x01(\x08\x1a\xad\x02\n\x12ResourceVoteChoice\x12\xad\x01\n\x10vote_choice_type\x18\x01 \x01(\x0e\x32\x92\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType\x12\x18\n\x0bidentity_id\x18\x02 \x01(\x0cH\x00\x88\x01\x01\"=\n\x0eVoteChoiceType\x12\x14\n\x10TOWARDS_IDENTITY\x10\x00\x12\x0b\n\x07\x41\x42STAIN\x10\x01\x12\x08\n\x04LOCK\x10\x02\x42\x0e\n\x0c_identity_id\x1a\x95\x02\n\x1d\x43ontestedResourceIdentityVote\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1a\n\x12\x64ocument_type_name\x18\x02 \x01(\t\x12\'\n\x1fserialized_index_storage_values\x18\x03 \x03(\x0c\x12\x99\x01\n\x0bvote_choice\x18\x04 \x01(\x0b\x32\x83\x01.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoiceB\x08\n\x06resultB\t\n\x07version\"\xf0\x01\n%GetPrefundedSpecializedBalanceRequest\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0H\x00\x1a\x44\n\'GetPrefundedSpecializedBalanceRequestV0\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xed\x02\n&GetPrefundedSpecializedBalanceResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0H\x00\x1a\xbd\x01\n(GetPrefundedSpecializedBalanceResponseV0\x12\x15\n\x07\x62\x61lance\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xd0\x01\n GetTotalCreditsInPlatformRequest\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0H\x00\x1a\x33\n\"GetTotalCreditsInPlatformRequestV0\x12\r\n\x05prove\x18\x01 \x01(\x08\x42\t\n\x07version\"\xd9\x02\n!GetTotalCreditsInPlatformResponse\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0H\x00\x1a\xb8\x01\n#GetTotalCreditsInPlatformResponseV0\x12\x15\n\x07\x63redits\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\x08\n\x06resultB\t\n\x07version\"\xc4\x01\n\x16GetPathElementsRequest\x12X\n\x02v0\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0H\x00\x1a\x45\n\x18GetPathElementsRequestV0\x12\x0c\n\x04path\x18\x01 \x03(\x0c\x12\x0c\n\x04keys\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xa3\x03\n\x17GetPathElementsResponse\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0H\x00\x1a\xa0\x02\n\x19GetPathElementsResponseV0\x12i\n\x08\x65lements\x18\x01 \x01(\x0b\x32U.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ElementsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x1c\n\x08\x45lements\x12\x10\n\x08\x65lements\x18\x01 \x03(\x0c\x42\x08\n\x06resultB\t\n\x07version\"\x81\x01\n\x10GetStatusRequest\x12L\n\x02v0\x18\x01 \x01(\x0b\x32>.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0H\x00\x1a\x14\n\x12GetStatusRequestV0B\t\n\x07version\"\xe4\x10\n\x11GetStatusResponse\x12N\n\x02v0\x18\x01 \x01(\x0b\x32@.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0H\x00\x1a\xf3\x0f\n\x13GetStatusResponseV0\x12Y\n\x07version\x18\x01 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version\x12S\n\x04node\x18\x02 \x01(\x0b\x32\x45.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node\x12U\n\x05\x63hain\x18\x03 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain\x12Y\n\x07network\x18\x04 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network\x12^\n\nstate_sync\x18\x05 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync\x12S\n\x04time\x18\x06 \x01(\x0b\x32\x45.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time\x1a\x82\x05\n\x07Version\x12\x63\n\x08software\x18\x01 \x01(\x0b\x32Q.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software\x12\x63\n\x08protocol\x18\x02 \x01(\x0b\x32Q.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol\x1a^\n\x08Software\x12\x0c\n\x04\x64\x61pi\x18\x01 \x01(\t\x12\x12\n\x05\x64rive\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ntenderdash\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_driveB\r\n\x0b_tenderdash\x1a\xcc\x02\n\x08Protocol\x12p\n\ntenderdash\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash\x12\x66\n\x05\x64rive\x18\x02 \x01(\x0b\x32W.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive\x1a(\n\nTenderdash\x12\x0b\n\x03p2p\x18\x01 \x01(\r\x12\r\n\x05\x62lock\x18\x02 \x01(\r\x1a<\n\x05\x44rive\x12\x0e\n\x06latest\x18\x03 \x01(\r\x12\x0f\n\x07\x63urrent\x18\x04 \x01(\r\x12\x12\n\nnext_epoch\x18\x05 \x01(\r\x1a\x7f\n\x04Time\x12\x11\n\x05local\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x16\n\x05\x62lock\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12\x18\n\x07genesis\x18\x03 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x12\x12\n\x05\x65poch\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_blockB\n\n\x08_genesisB\x08\n\x06_epoch\x1a<\n\x04Node\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x18\n\x0bpro_tx_hash\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0e\n\x0c_pro_tx_hash\x1a\xb3\x02\n\x05\x43hain\x12\x13\n\x0b\x63\x61tching_up\x18\x01 \x01(\x08\x12\x19\n\x11latest_block_hash\x18\x02 \x01(\x0c\x12\x17\n\x0flatest_app_hash\x18\x03 \x01(\x0c\x12\x1f\n\x13latest_block_height\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x1b\n\x13\x65\x61rliest_block_hash\x18\x05 \x01(\x0c\x12\x19\n\x11\x65\x61rliest_app_hash\x18\x06 \x01(\x0c\x12!\n\x15\x65\x61rliest_block_height\x18\x07 \x01(\x04\x42\x02\x30\x01\x12!\n\x15max_peer_block_height\x18\t \x01(\x04\x42\x02\x30\x01\x12%\n\x18\x63ore_chain_locked_height\x18\n \x01(\rH\x00\x88\x01\x01\x42\x1b\n\x19_core_chain_locked_height\x1a\x43\n\x07Network\x12\x10\n\x08\x63hain_id\x18\x01 \x01(\t\x12\x13\n\x0bpeers_count\x18\x02 \x01(\r\x12\x11\n\tlistening\x18\x03 \x01(\x08\x1a\x85\x02\n\tStateSync\x12\x1d\n\x11total_synced_time\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0eremaining_time\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0ftotal_snapshots\x18\x03 \x01(\r\x12\"\n\x16\x63hunk_process_avg_time\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x1b\n\x0fsnapshot_height\x18\x05 \x01(\x04\x42\x02\x30\x01\x12!\n\x15snapshot_chunks_count\x18\x06 \x01(\x04\x42\x02\x30\x01\x12\x1d\n\x11\x62\x61\x63kfilled_blocks\x18\x07 \x01(\x04\x42\x02\x30\x01\x12!\n\x15\x62\x61\x63kfill_blocks_total\x18\x08 \x01(\x04\x42\x02\x30\x01\x42\t\n\x07version\"\xb1\x01\n\x1cGetCurrentQuorumsInfoRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0H\x00\x1a \n\x1eGetCurrentQuorumsInfoRequestV0B\t\n\x07version\"\xa1\x05\n\x1dGetCurrentQuorumsInfoResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0H\x00\x1a\x46\n\x0bValidatorV0\x12\x13\n\x0bpro_tx_hash\x18\x01 \x01(\x0c\x12\x0f\n\x07node_ip\x18\x02 \x01(\t\x12\x11\n\tis_banned\x18\x03 \x01(\x08\x1a\xaf\x01\n\x0eValidatorSetV0\x12\x13\n\x0bquorum_hash\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63ore_height\x18\x02 \x01(\r\x12U\n\x07members\x18\x03 \x03(\x0b\x32\x44.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0\x12\x1c\n\x14threshold_public_key\x18\x04 \x01(\x0c\x1a\x92\x02\n\x1fGetCurrentQuorumsInfoResponseV0\x12\x15\n\rquorum_hashes\x18\x01 \x03(\x0c\x12\x1b\n\x13\x63urrent_quorum_hash\x18\x02 \x01(\x0c\x12_\n\x0evalidator_sets\x18\x03 \x03(\x0b\x32G.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0\x12\x1b\n\x13last_block_proposer\x18\x04 \x01(\x0c\x12=\n\x08metadata\x18\x05 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\t\n\x07version\"\xf4\x01\n\x1fGetIdentityTokenBalancesRequest\x12j\n\x02v0\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetIdentityTokenBalancesRequest.GetIdentityTokenBalancesRequestV0H\x00\x1aZ\n!GetIdentityTokenBalancesRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x11\n\ttoken_ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xad\x05\n GetIdentityTokenBalancesResponse\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetIdentityTokenBalancesResponse.GetIdentityTokenBalancesResponseV0H\x00\x1a\x8f\x04\n\"GetIdentityTokenBalancesResponseV0\x12\x86\x01\n\x0etoken_balances\x18\x01 \x01(\x0b\x32l.org.dash.platform.dapi.v0.GetIdentityTokenBalancesResponse.GetIdentityTokenBalancesResponseV0.TokenBalancesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aG\n\x11TokenBalanceEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x14\n\x07\x62\x61lance\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_balance\x1a\x9a\x01\n\rTokenBalances\x12\x88\x01\n\x0etoken_balances\x18\x01 \x03(\x0b\x32p.org.dash.platform.dapi.v0.GetIdentityTokenBalancesResponse.GetIdentityTokenBalancesResponseV0.TokenBalanceEntryB\x08\n\x06resultB\t\n\x07version\"\xfc\x01\n!GetIdentitiesTokenBalancesRequest\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesRequest.GetIdentitiesTokenBalancesRequestV0H\x00\x1a\\\n#GetIdentitiesTokenBalancesRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x14\n\x0cidentity_ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xf2\x05\n\"GetIdentitiesTokenBalancesResponse\x12p\n\x02v0\x18\x01 \x01(\x0b\x32\x62.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesResponse.GetIdentitiesTokenBalancesResponseV0H\x00\x1a\xce\x04\n$GetIdentitiesTokenBalancesResponseV0\x12\x9b\x01\n\x17identity_token_balances\x18\x01 \x01(\x0b\x32x.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesResponse.GetIdentitiesTokenBalancesResponseV0.IdentityTokenBalancesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aR\n\x19IdentityTokenBalanceEntry\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x14\n\x07\x62\x61lance\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_balance\x1a\xb7\x01\n\x15IdentityTokenBalances\x12\x9d\x01\n\x17identity_token_balances\x18\x01 \x03(\x0b\x32|.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesResponse.GetIdentitiesTokenBalancesResponseV0.IdentityTokenBalanceEntryB\x08\n\x06resultB\t\n\x07version\"\xe8\x01\n\x1cGetIdentityTokenInfosRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetIdentityTokenInfosRequest.GetIdentityTokenInfosRequestV0H\x00\x1aW\n\x1eGetIdentityTokenInfosRequestV0\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x11\n\ttoken_ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\x98\x06\n\x1dGetIdentityTokenInfosResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse.GetIdentityTokenInfosResponseV0H\x00\x1a\x83\x05\n\x1fGetIdentityTokenInfosResponseV0\x12z\n\x0btoken_infos\x18\x01 \x01(\x0b\x32\x63.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse.GetIdentityTokenInfosResponseV0.TokenInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a(\n\x16TokenIdentityInfoEntry\x12\x0e\n\x06\x66rozen\x18\x01 \x01(\x08\x1a\xb0\x01\n\x0eTokenInfoEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x82\x01\n\x04info\x18\x02 \x01(\x0b\x32o.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse.GetIdentityTokenInfosResponseV0.TokenIdentityInfoEntryH\x00\x88\x01\x01\x42\x07\n\x05_info\x1a\x8a\x01\n\nTokenInfos\x12|\n\x0btoken_infos\x18\x01 \x03(\x0b\x32g.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse.GetIdentityTokenInfosResponseV0.TokenInfoEntryB\x08\n\x06resultB\t\n\x07version\"\xf0\x01\n\x1eGetIdentitiesTokenInfosRequest\x12h\n\x02v0\x18\x01 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosRequest.GetIdentitiesTokenInfosRequestV0H\x00\x1aY\n GetIdentitiesTokenInfosRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x14\n\x0cidentity_ids\x18\x02 \x03(\x0c\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xca\x06\n\x1fGetIdentitiesTokenInfosResponse\x12j\n\x02v0\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse.GetIdentitiesTokenInfosResponseV0H\x00\x1a\xaf\x05\n!GetIdentitiesTokenInfosResponseV0\x12\x8f\x01\n\x14identity_token_infos\x18\x01 \x01(\x0b\x32o.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse.GetIdentitiesTokenInfosResponseV0.IdentityTokenInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a(\n\x16TokenIdentityInfoEntry\x12\x0e\n\x06\x66rozen\x18\x01 \x01(\x08\x1a\xb7\x01\n\x0eTokenInfoEntry\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12\x86\x01\n\x04info\x18\x02 \x01(\x0b\x32s.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse.GetIdentitiesTokenInfosResponseV0.TokenIdentityInfoEntryH\x00\x88\x01\x01\x42\x07\n\x05_info\x1a\x97\x01\n\x12IdentityTokenInfos\x12\x80\x01\n\x0btoken_infos\x18\x01 \x03(\x0b\x32k.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse.GetIdentitiesTokenInfosResponseV0.TokenInfoEntryB\x08\n\x06resultB\t\n\x07version\"\xbf\x01\n\x17GetTokenStatusesRequest\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetTokenStatusesRequest.GetTokenStatusesRequestV0H\x00\x1a=\n\x19GetTokenStatusesRequestV0\x12\x11\n\ttoken_ids\x18\x01 \x03(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xe7\x04\n\x18GetTokenStatusesResponse\x12\\\n\x02v0\x18\x01 \x01(\x0b\x32N.org.dash.platform.dapi.v0.GetTokenStatusesResponse.GetTokenStatusesResponseV0H\x00\x1a\xe1\x03\n\x1aGetTokenStatusesResponseV0\x12v\n\x0etoken_statuses\x18\x01 \x01(\x0b\x32\\.org.dash.platform.dapi.v0.GetTokenStatusesResponse.GetTokenStatusesResponseV0.TokenStatusesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x44\n\x10TokenStatusEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x13\n\x06paused\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_paused\x1a\x88\x01\n\rTokenStatuses\x12w\n\x0etoken_statuses\x18\x01 \x03(\x0b\x32_.org.dash.platform.dapi.v0.GetTokenStatusesResponse.GetTokenStatusesResponseV0.TokenStatusEntryB\x08\n\x06resultB\t\n\x07version\"\xef\x01\n#GetTokenDirectPurchasePricesRequest\x12r\n\x02v0\x18\x01 \x01(\x0b\x32\x64.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesRequest.GetTokenDirectPurchasePricesRequestV0H\x00\x1aI\n%GetTokenDirectPurchasePricesRequestV0\x12\x11\n\ttoken_ids\x18\x01 \x03(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\x8b\t\n$GetTokenDirectPurchasePricesResponse\x12t\n\x02v0\x18\x01 \x01(\x0b\x32\x66.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0H\x00\x1a\xe1\x07\n&GetTokenDirectPurchasePricesResponseV0\x12\xa9\x01\n\x1ctoken_direct_purchase_prices\x18\x01 \x01(\x0b\x32\x80\x01.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0.TokenDirectPurchasePricesH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x33\n\x10PriceForQuantity\x12\x10\n\x08quantity\x18\x01 \x01(\x04\x12\r\n\x05price\x18\x02 \x01(\x04\x1a\xa7\x01\n\x0fPricingSchedule\x12\x93\x01\n\x12price_for_quantity\x18\x01 \x03(\x0b\x32w.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0.PriceForQuantity\x1a\xe4\x01\n\x1dTokenDirectPurchasePriceEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x15\n\x0b\x66ixed_price\x18\x02 \x01(\x04H\x00\x12\x90\x01\n\x0evariable_price\x18\x03 \x01(\x0b\x32v.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0.PricingScheduleH\x00\x42\x07\n\x05price\x1a\xc8\x01\n\x19TokenDirectPurchasePrices\x12\xaa\x01\n\x1btoken_direct_purchase_price\x18\x01 \x03(\x0b\x32\x84\x01.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse.GetTokenDirectPurchasePricesResponseV0.TokenDirectPurchasePriceEntryB\x08\n\x06resultB\t\n\x07version\"\xce\x01\n\x1bGetTokenContractInfoRequest\x12\x62\n\x02v0\x18\x01 \x01(\x0b\x32T.org.dash.platform.dapi.v0.GetTokenContractInfoRequest.GetTokenContractInfoRequestV0H\x00\x1a@\n\x1dGetTokenContractInfoRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xfb\x03\n\x1cGetTokenContractInfoResponse\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetTokenContractInfoResponse.GetTokenContractInfoResponseV0H\x00\x1a\xe9\x02\n\x1eGetTokenContractInfoResponseV0\x12|\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32l.org.dash.platform.dapi.v0.GetTokenContractInfoResponse.GetTokenContractInfoResponseV0.TokenContractInfoDataH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1aM\n\x15TokenContractInfoData\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17token_contract_position\x18\x02 \x01(\rB\x08\n\x06resultB\t\n\x07version\"\xef\x04\n)GetTokenPreProgrammedDistributionsRequest\x12~\n\x02v0\x18\x01 \x01(\x0b\x32p.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsRequest.GetTokenPreProgrammedDistributionsRequestV0H\x00\x1a\xb6\x03\n+GetTokenPreProgrammedDistributionsRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x98\x01\n\rstart_at_info\x18\x02 \x01(\x0b\x32|.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsRequest.GetTokenPreProgrammedDistributionsRequestV0.StartAtInfoH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\r\n\x05prove\x18\x04 \x01(\x08\x1a\x9a\x01\n\x0bStartAtInfo\x12\x15\n\rstart_time_ms\x18\x01 \x01(\x04\x12\x1c\n\x0fstart_recipient\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12%\n\x18start_recipient_included\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_start_recipientB\x1b\n\x19_start_recipient_includedB\x10\n\x0e_start_at_infoB\x08\n\x06_limitB\t\n\x07version\"\xec\x07\n*GetTokenPreProgrammedDistributionsResponse\x12\x80\x01\n\x02v0\x18\x01 \x01(\x0b\x32r.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse.GetTokenPreProgrammedDistributionsResponseV0H\x00\x1a\xaf\x06\n,GetTokenPreProgrammedDistributionsResponseV0\x12\xa5\x01\n\x13token_distributions\x18\x01 \x01(\x0b\x32\x85\x01.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse.GetTokenPreProgrammedDistributionsResponseV0.TokenDistributionsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a>\n\x16TokenDistributionEntry\x12\x14\n\x0crecipient_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x04\x1a\xd4\x01\n\x1bTokenTimedDistributionEntry\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\xa1\x01\n\rdistributions\x18\x02 \x03(\x0b\x32\x89\x01.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse.GetTokenPreProgrammedDistributionsResponseV0.TokenDistributionEntry\x1a\xc3\x01\n\x12TokenDistributions\x12\xac\x01\n\x13token_distributions\x18\x01 \x03(\x0b\x32\x8e\x01.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse.GetTokenPreProgrammedDistributionsResponseV0.TokenTimedDistributionEntryB\x08\n\x06resultB\t\n\x07version\"\x82\x04\n-GetTokenPerpetualDistributionLastClaimRequest\x12\x86\x01\n\x02v0\x18\x01 \x01(\x0b\x32x.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimRequest.GetTokenPerpetualDistributionLastClaimRequestV0H\x00\x1aI\n\x11\x43ontractTokenInfo\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17token_contract_position\x18\x02 \x01(\r\x1a\xf1\x01\n/GetTokenPerpetualDistributionLastClaimRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12v\n\rcontract_info\x18\x02 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimRequest.ContractTokenInfoH\x00\x88\x01\x01\x12\x13\n\x0bidentity_id\x18\x04 \x01(\x0c\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\x10\n\x0e_contract_infoB\t\n\x07version\"\x93\x05\n.GetTokenPerpetualDistributionLastClaimResponse\x12\x88\x01\n\x02v0\x18\x01 \x01(\x0b\x32z.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimResponse.GetTokenPerpetualDistributionLastClaimResponseV0H\x00\x1a\xca\x03\n0GetTokenPerpetualDistributionLastClaimResponseV0\x12\x9f\x01\n\nlast_claim\x18\x01 \x01(\x0b\x32\x88\x01.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimResponse.GetTokenPerpetualDistributionLastClaimResponseV0.LastClaimInfoH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1ax\n\rLastClaimInfo\x12\x1a\n\x0ctimestamp_ms\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x12\x1a\n\x0c\x62lock_height\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x12\x0f\n\x05\x65poch\x18\x03 \x01(\rH\x00\x12\x13\n\traw_bytes\x18\x04 \x01(\x0cH\x00\x42\t\n\x07paid_atB\x08\n\x06resultB\t\n\x07version\"\xca\x01\n\x1aGetTokenTotalSupplyRequest\x12`\n\x02v0\x18\x01 \x01(\x0b\x32R.org.dash.platform.dapi.v0.GetTokenTotalSupplyRequest.GetTokenTotalSupplyRequestV0H\x00\x1a?\n\x1cGetTokenTotalSupplyRequestV0\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\r\n\x05prove\x18\x02 \x01(\x08\x42\t\n\x07version\"\xaf\x04\n\x1bGetTokenTotalSupplyResponse\x12\x62\n\x02v0\x18\x01 \x01(\x0b\x32T.org.dash.platform.dapi.v0.GetTokenTotalSupplyResponse.GetTokenTotalSupplyResponseV0H\x00\x1a\xa0\x03\n\x1dGetTokenTotalSupplyResponseV0\x12\x88\x01\n\x12token_total_supply\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetTokenTotalSupplyResponse.GetTokenTotalSupplyResponseV0.TokenTotalSupplyEntryH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1ax\n\x15TokenTotalSupplyEntry\x12\x10\n\x08token_id\x18\x01 \x01(\x0c\x12\x30\n(total_aggregated_amount_in_user_accounts\x18\x02 \x01(\x04\x12\x1b\n\x13total_system_amount\x18\x03 \x01(\x04\x42\x08\n\x06resultB\t\n\x07version\"\xd2\x01\n\x13GetGroupInfoRequest\x12R\n\x02v0\x18\x01 \x01(\x0b\x32\x44.org.dash.platform.dapi.v0.GetGroupInfoRequest.GetGroupInfoRequestV0H\x00\x1a\\\n\x15GetGroupInfoRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17group_contract_position\x18\x02 \x01(\r\x12\r\n\x05prove\x18\x03 \x01(\x08\x42\t\n\x07version\"\xd4\x05\n\x14GetGroupInfoResponse\x12T\n\x02v0\x18\x01 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetGroupInfoResponse.GetGroupInfoResponseV0H\x00\x1a\xda\x04\n\x16GetGroupInfoResponseV0\x12\x66\n\ngroup_info\x18\x01 \x01(\x0b\x32P.org.dash.platform.dapi.v0.GetGroupInfoResponse.GetGroupInfoResponseV0.GroupInfoH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x04 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x34\n\x10GroupMemberEntry\x12\x11\n\tmember_id\x18\x01 \x01(\x0c\x12\r\n\x05power\x18\x02 \x01(\r\x1a\x98\x01\n\x0eGroupInfoEntry\x12h\n\x07members\x18\x01 \x03(\x0b\x32W.org.dash.platform.dapi.v0.GetGroupInfoResponse.GetGroupInfoResponseV0.GroupMemberEntry\x12\x1c\n\x14group_required_power\x18\x02 \x01(\r\x1a\x8a\x01\n\tGroupInfo\x12n\n\ngroup_info\x18\x01 \x01(\x0b\x32U.org.dash.platform.dapi.v0.GetGroupInfoResponse.GetGroupInfoResponseV0.GroupInfoEntryH\x00\x88\x01\x01\x42\r\n\x0b_group_infoB\x08\n\x06resultB\t\n\x07version\"\xed\x03\n\x14GetGroupInfosRequest\x12T\n\x02v0\x18\x01 \x01(\x0b\x32\x46.org.dash.platform.dapi.v0.GetGroupInfosRequest.GetGroupInfosRequestV0H\x00\x1au\n\x1cStartAtGroupContractPosition\x12%\n\x1dstart_group_contract_position\x18\x01 \x01(\r\x12.\n&start_group_contract_position_included\x18\x02 \x01(\x08\x1a\xfc\x01\n\x16GetGroupInfosRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12{\n start_at_group_contract_position\x18\x02 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetGroupInfosRequest.StartAtGroupContractPositionH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\r\n\x05prove\x18\x04 \x01(\x08\x42#\n!_start_at_group_contract_positionB\x08\n\x06_countB\t\n\x07version\"\xff\x05\n\x15GetGroupInfosResponse\x12V\n\x02v0\x18\x01 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetGroupInfosResponse.GetGroupInfosResponseV0H\x00\x1a\x82\x05\n\x17GetGroupInfosResponseV0\x12j\n\x0bgroup_infos\x18\x01 \x01(\x0b\x32S.org.dash.platform.dapi.v0.GetGroupInfosResponse.GetGroupInfosResponseV0.GroupInfosH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x04 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x34\n\x10GroupMemberEntry\x12\x11\n\tmember_id\x18\x01 \x01(\x0c\x12\r\n\x05power\x18\x02 \x01(\r\x1a\xc3\x01\n\x16GroupPositionInfoEntry\x12\x1f\n\x17group_contract_position\x18\x01 \x01(\r\x12j\n\x07members\x18\x02 \x03(\x0b\x32Y.org.dash.platform.dapi.v0.GetGroupInfosResponse.GetGroupInfosResponseV0.GroupMemberEntry\x12\x1c\n\x14group_required_power\x18\x03 \x01(\r\x1a\x82\x01\n\nGroupInfos\x12t\n\x0bgroup_infos\x18\x01 \x03(\x0b\x32_.org.dash.platform.dapi.v0.GetGroupInfosResponse.GetGroupInfosResponseV0.GroupPositionInfoEntryB\x08\n\x06resultB\t\n\x07version\"\xbe\x04\n\x16GetGroupActionsRequest\x12X\n\x02v0\x18\x01 \x01(\x0b\x32J.org.dash.platform.dapi.v0.GetGroupActionsRequest.GetGroupActionsRequestV0H\x00\x1aL\n\x0fStartAtActionId\x12\x17\n\x0fstart_action_id\x18\x01 \x01(\x0c\x12 \n\x18start_action_id_included\x18\x02 \x01(\x08\x1a\xc8\x02\n\x18GetGroupActionsRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17group_contract_position\x18\x02 \x01(\r\x12N\n\x06status\x18\x03 \x01(\x0e\x32>.org.dash.platform.dapi.v0.GetGroupActionsRequest.ActionStatus\x12\x62\n\x12start_at_action_id\x18\x04 \x01(\x0b\x32\x41.org.dash.platform.dapi.v0.GetGroupActionsRequest.StartAtActionIdH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\rH\x01\x88\x01\x01\x12\r\n\x05prove\x18\x06 \x01(\x08\x42\x15\n\x13_start_at_action_idB\x08\n\x06_count\"&\n\x0c\x41\x63tionStatus\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\n\n\x06\x43LOSED\x10\x01\x42\t\n\x07version\"\xd6\x1e\n\x17GetGroupActionsResponse\x12Z\n\x02v0\x18\x01 \x01(\x0b\x32L.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0H\x00\x1a\xd3\x1d\n\x19GetGroupActionsResponseV0\x12r\n\rgroup_actions\x18\x01 \x01(\x0b\x32Y.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.GroupActionsH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a[\n\tMintEvent\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x14\n\x0crecipient_id\x18\x02 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1a[\n\tBurnEvent\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x14\n\x0c\x62urn_from_id\x18\x02 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1aJ\n\x0b\x46reezeEvent\x12\x11\n\tfrozen_id\x18\x01 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1aL\n\rUnfreezeEvent\x12\x11\n\tfrozen_id\x18\x01 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1a\x66\n\x17\x44\x65stroyFrozenFundsEvent\x12\x11\n\tfrozen_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x04\x12\x18\n\x0bpublic_note\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1a\x64\n\x13SharedEncryptedNote\x12\x18\n\x10sender_key_index\x18\x01 \x01(\r\x12\x1b\n\x13recipient_key_index\x18\x02 \x01(\r\x12\x16\n\x0e\x65ncrypted_data\x18\x03 \x01(\x0c\x1a{\n\x15PersonalEncryptedNote\x12!\n\x19root_encryption_key_index\x18\x01 \x01(\r\x12\'\n\x1f\x64\x65rivation_encryption_key_index\x18\x02 \x01(\r\x12\x16\n\x0e\x65ncrypted_data\x18\x03 \x01(\x0c\x1a\xe9\x01\n\x14\x45mergencyActionEvent\x12\x81\x01\n\x0b\x61\x63tion_type\x18\x01 \x01(\x0e\x32l.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.EmergencyActionEvent.ActionType\x12\x18\n\x0bpublic_note\x18\x02 \x01(\tH\x00\x88\x01\x01\"#\n\nActionType\x12\t\n\x05PAUSE\x10\x00\x12\n\n\x06RESUME\x10\x01\x42\x0e\n\x0c_public_note\x1a\x64\n\x16TokenConfigUpdateEvent\x12 \n\x18token_config_update_item\x18\x01 \x01(\x0c\x12\x18\n\x0bpublic_note\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_public_note\x1a\xe6\x03\n\x1eUpdateDirectPurchasePriceEvent\x12\x15\n\x0b\x66ixed_price\x18\x01 \x01(\x04H\x00\x12\x95\x01\n\x0evariable_price\x18\x02 \x01(\x0b\x32{.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.UpdateDirectPurchasePriceEvent.PricingScheduleH\x00\x12\x18\n\x0bpublic_note\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a\x33\n\x10PriceForQuantity\x12\x10\n\x08quantity\x18\x01 \x01(\x04\x12\r\n\x05price\x18\x02 \x01(\x04\x1a\xac\x01\n\x0fPricingSchedule\x12\x98\x01\n\x12price_for_quantity\x18\x01 \x03(\x0b\x32|.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.UpdateDirectPurchasePriceEvent.PriceForQuantityB\x07\n\x05priceB\x0e\n\x0c_public_note\x1a\xfc\x02\n\x10GroupActionEvent\x12n\n\x0btoken_event\x18\x01 \x01(\x0b\x32W.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.TokenEventH\x00\x12t\n\x0e\x64ocument_event\x18\x02 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.DocumentEventH\x00\x12t\n\x0e\x63ontract_event\x18\x03 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.ContractEventH\x00\x42\x0c\n\nevent_type\x1a\x8b\x01\n\rDocumentEvent\x12r\n\x06\x63reate\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.DocumentCreateEventH\x00\x42\x06\n\x04type\x1a/\n\x13\x44ocumentCreateEvent\x12\x18\n\x10\x63reated_document\x18\x01 \x01(\x0c\x1a/\n\x13\x43ontractUpdateEvent\x12\x18\n\x10updated_contract\x18\x01 \x01(\x0c\x1a\x8b\x01\n\rContractEvent\x12r\n\x06update\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.ContractUpdateEventH\x00\x42\x06\n\x04type\x1a\xd1\x07\n\nTokenEvent\x12\x66\n\x04mint\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.MintEventH\x00\x12\x66\n\x04\x62urn\x18\x02 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.BurnEventH\x00\x12j\n\x06\x66reeze\x18\x03 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.FreezeEventH\x00\x12n\n\x08unfreeze\x18\x04 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.UnfreezeEventH\x00\x12\x84\x01\n\x14\x64\x65stroy_frozen_funds\x18\x05 \x01(\x0b\x32\x64.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.DestroyFrozenFundsEventH\x00\x12}\n\x10\x65mergency_action\x18\x06 \x01(\x0b\x32\x61.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.EmergencyActionEventH\x00\x12\x82\x01\n\x13token_config_update\x18\x07 \x01(\x0b\x32\x63.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.TokenConfigUpdateEventH\x00\x12\x83\x01\n\x0cupdate_price\x18\x08 \x01(\x0b\x32k.org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.UpdateDirectPurchasePriceEventH\x00\x42\x06\n\x04type\x1a\x93\x01\n\x10GroupActionEntry\x12\x11\n\taction_id\x18\x01 \x01(\x0c\x12l\n\x05\x65vent\x18\x02 \x01(\x0b\x32].org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.GroupActionEvent\x1a\x84\x01\n\x0cGroupActions\x12t\n\rgroup_actions\x18\x01 \x03(\x0b\x32].org.dash.platform.dapi.v0.GetGroupActionsResponse.GetGroupActionsResponseV0.GroupActionEntryB\x08\n\x06resultB\t\n\x07version\"\x88\x03\n\x1cGetGroupActionSignersRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetGroupActionSignersRequest.GetGroupActionSignersRequestV0H\x00\x1a\xce\x01\n\x1eGetGroupActionSignersRequestV0\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x1f\n\x17group_contract_position\x18\x02 \x01(\r\x12T\n\x06status\x18\x03 \x01(\x0e\x32\x44.org.dash.platform.dapi.v0.GetGroupActionSignersRequest.ActionStatus\x12\x11\n\taction_id\x18\x04 \x01(\x0c\x12\r\n\x05prove\x18\x05 \x01(\x08\"&\n\x0c\x41\x63tionStatus\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\n\n\x06\x43LOSED\x10\x01\x42\t\n\x07version\"\x8b\x05\n\x1dGetGroupActionSignersResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0H\x00\x1a\xf6\x03\n\x1fGetGroupActionSignersResponseV0\x12\x8b\x01\n\x14group_action_signers\x18\x01 \x01(\x0b\x32k.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSignersH\x00\x12\x31\n\x05proof\x18\x02 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadata\x1a\x35\n\x11GroupActionSigner\x12\x11\n\tsigner_id\x18\x01 \x01(\x0c\x12\r\n\x05power\x18\x02 \x01(\r\x1a\x91\x01\n\x12GroupActionSigners\x12{\n\x07signers\x18\x01 \x03(\x0b\x32j.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSignerB\x08\n\x06resultB\t\n\x07version*Z\n\nKeyPurpose\x12\x12\n\x0e\x41UTHENTICATION\x10\x00\x12\x0e\n\nENCRYPTION\x10\x01\x12\x0e\n\nDECRYPTION\x10\x02\x12\x0c\n\x08TRANSFER\x10\x03\x12\n\n\x06VOTING\x10\x05\x32\xf4\x36\n\x08Platform\x12\x93\x01\n\x18\x62roadcastStateTransition\x12:.org.dash.platform.dapi.v0.BroadcastStateTransitionRequest\x1a;.org.dash.platform.dapi.v0.BroadcastStateTransitionResponse\x12l\n\x0bgetIdentity\x12-.org.dash.platform.dapi.v0.GetIdentityRequest\x1a..org.dash.platform.dapi.v0.GetIdentityResponse\x12x\n\x0fgetIdentityKeys\x12\x31.org.dash.platform.dapi.v0.GetIdentityKeysRequest\x1a\x32.org.dash.platform.dapi.v0.GetIdentityKeysResponse\x12\x96\x01\n\x19getIdentitiesContractKeys\x12;.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest\x1a<.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse\x12{\n\x10getIdentityNonce\x12\x32.org.dash.platform.dapi.v0.GetIdentityNonceRequest\x1a\x33.org.dash.platform.dapi.v0.GetIdentityNonceResponse\x12\x93\x01\n\x18getIdentityContractNonce\x12:.org.dash.platform.dapi.v0.GetIdentityContractNonceRequest\x1a;.org.dash.platform.dapi.v0.GetIdentityContractNonceResponse\x12\x81\x01\n\x12getIdentityBalance\x12\x34.org.dash.platform.dapi.v0.GetIdentityBalanceRequest\x1a\x35.org.dash.platform.dapi.v0.GetIdentityBalanceResponse\x12\x8a\x01\n\x15getIdentitiesBalances\x12\x37.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest\x1a\x38.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse\x12\xa2\x01\n\x1dgetIdentityBalanceAndRevision\x12?.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionRequest\x1a@.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse\x12\xaf\x01\n#getEvonodesProposedEpochBlocksByIds\x12\x45.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest\x1a\x41.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse\x12\xb3\x01\n%getEvonodesProposedEpochBlocksByRange\x12G.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest\x1a\x41.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse\x12x\n\x0fgetDataContract\x12\x31.org.dash.platform.dapi.v0.GetDataContractRequest\x1a\x32.org.dash.platform.dapi.v0.GetDataContractResponse\x12\x8d\x01\n\x16getDataContractHistory\x12\x38.org.dash.platform.dapi.v0.GetDataContractHistoryRequest\x1a\x39.org.dash.platform.dapi.v0.GetDataContractHistoryResponse\x12{\n\x10getDataContracts\x12\x32.org.dash.platform.dapi.v0.GetDataContractsRequest\x1a\x33.org.dash.platform.dapi.v0.GetDataContractsResponse\x12o\n\x0cgetDocuments\x12..org.dash.platform.dapi.v0.GetDocumentsRequest\x1a/.org.dash.platform.dapi.v0.GetDocumentsResponse\x12\x99\x01\n\x1agetIdentityByPublicKeyHash\x12<.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest\x1a=.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse\x12\xb4\x01\n#getIdentityByNonUniquePublicKeyHash\x12\x45.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashRequest\x1a\x46.org.dash.platform.dapi.v0.GetIdentityByNonUniquePublicKeyHashResponse\x12\x9f\x01\n\x1cwaitForStateTransitionResult\x12>.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest\x1a?.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse\x12\x81\x01\n\x12getConsensusParams\x12\x34.org.dash.platform.dapi.v0.GetConsensusParamsRequest\x1a\x35.org.dash.platform.dapi.v0.GetConsensusParamsResponse\x12\xa5\x01\n\x1egetProtocolVersionUpgradeState\x12@.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest\x1a\x41.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse\x12\xb4\x01\n#getProtocolVersionUpgradeVoteStatus\x12\x45.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest\x1a\x46.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse\x12r\n\rgetEpochsInfo\x12/.org.dash.platform.dapi.v0.GetEpochsInfoRequest\x1a\x30.org.dash.platform.dapi.v0.GetEpochsInfoResponse\x12\x8d\x01\n\x16getFinalizedEpochInfos\x12\x38.org.dash.platform.dapi.v0.GetFinalizedEpochInfosRequest\x1a\x39.org.dash.platform.dapi.v0.GetFinalizedEpochInfosResponse\x12\x8a\x01\n\x15getContestedResources\x12\x37.org.dash.platform.dapi.v0.GetContestedResourcesRequest\x1a\x38.org.dash.platform.dapi.v0.GetContestedResourcesResponse\x12\xa2\x01\n\x1dgetContestedResourceVoteState\x12?.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest\x1a@.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse\x12\xba\x01\n%getContestedResourceVotersForIdentity\x12G.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest\x1aH.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse\x12\xae\x01\n!getContestedResourceIdentityVotes\x12\x43.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest\x1a\x44.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse\x12\x8a\x01\n\x15getVotePollsByEndDate\x12\x37.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest\x1a\x38.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse\x12\xa5\x01\n\x1egetPrefundedSpecializedBalance\x12@.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest\x1a\x41.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse\x12\x96\x01\n\x19getTotalCreditsInPlatform\x12;.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest\x1a<.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse\x12x\n\x0fgetPathElements\x12\x31.org.dash.platform.dapi.v0.GetPathElementsRequest\x1a\x32.org.dash.platform.dapi.v0.GetPathElementsResponse\x12\x66\n\tgetStatus\x12+.org.dash.platform.dapi.v0.GetStatusRequest\x1a,.org.dash.platform.dapi.v0.GetStatusResponse\x12\x8a\x01\n\x15getCurrentQuorumsInfo\x12\x37.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest\x1a\x38.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse\x12\x93\x01\n\x18getIdentityTokenBalances\x12:.org.dash.platform.dapi.v0.GetIdentityTokenBalancesRequest\x1a;.org.dash.platform.dapi.v0.GetIdentityTokenBalancesResponse\x12\x99\x01\n\x1agetIdentitiesTokenBalances\x12<.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesRequest\x1a=.org.dash.platform.dapi.v0.GetIdentitiesTokenBalancesResponse\x12\x8a\x01\n\x15getIdentityTokenInfos\x12\x37.org.dash.platform.dapi.v0.GetIdentityTokenInfosRequest\x1a\x38.org.dash.platform.dapi.v0.GetIdentityTokenInfosResponse\x12\x90\x01\n\x17getIdentitiesTokenInfos\x12\x39.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosRequest\x1a:.org.dash.platform.dapi.v0.GetIdentitiesTokenInfosResponse\x12{\n\x10getTokenStatuses\x12\x32.org.dash.platform.dapi.v0.GetTokenStatusesRequest\x1a\x33.org.dash.platform.dapi.v0.GetTokenStatusesResponse\x12\x9f\x01\n\x1cgetTokenDirectPurchasePrices\x12>.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesRequest\x1a?.org.dash.platform.dapi.v0.GetTokenDirectPurchasePricesResponse\x12\x87\x01\n\x14getTokenContractInfo\x12\x36.org.dash.platform.dapi.v0.GetTokenContractInfoRequest\x1a\x37.org.dash.platform.dapi.v0.GetTokenContractInfoResponse\x12\xb1\x01\n\"getTokenPreProgrammedDistributions\x12\x44.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsRequest\x1a\x45.org.dash.platform.dapi.v0.GetTokenPreProgrammedDistributionsResponse\x12\xbd\x01\n&getTokenPerpetualDistributionLastClaim\x12H.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimRequest\x1aI.org.dash.platform.dapi.v0.GetTokenPerpetualDistributionLastClaimResponse\x12\x84\x01\n\x13getTokenTotalSupply\x12\x35.org.dash.platform.dapi.v0.GetTokenTotalSupplyRequest\x1a\x36.org.dash.platform.dapi.v0.GetTokenTotalSupplyResponse\x12o\n\x0cgetGroupInfo\x12..org.dash.platform.dapi.v0.GetGroupInfoRequest\x1a/.org.dash.platform.dapi.v0.GetGroupInfoResponse\x12r\n\rgetGroupInfos\x12/.org.dash.platform.dapi.v0.GetGroupInfosRequest\x1a\x30.org.dash.platform.dapi.v0.GetGroupInfosResponse\x12x\n\x0fgetGroupActions\x12\x31.org.dash.platform.dapi.v0.GetGroupActionsRequest\x1a\x32.org.dash.platform.dapi.v0.GetGroupActionsResponse\x12\x8a\x01\n\x15getGroupActionSigners\x12\x37.org.dash.platform.dapi.v0.GetGroupActionSignersRequest\x1a\x38.org.dash.platform.dapi.v0.GetGroupActionSignersResponse\x12\x8c\x01\n\x17subscribePlatformEvents\x12\x36.org.dash.platform.dapi.v0.PlatformSubscriptionRequest\x1a\x37.org.dash.platform.dapi.v0.PlatformSubscriptionResponse0\x01\x62\x06proto3' , dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) @@ -62,8 +62,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=50976, - serialized_end=51066, + serialized_start=52502, + serialized_end=52592, ) _sym_db.RegisterEnumDescriptor(_KEYPURPOSE) @@ -95,8 +95,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4178, - serialized_end=4261, + serialized_start=5704, + serialized_end=5787, ) _sym_db.RegisterEnumDescriptor(_SECURITYLEVELMAP_KEYKINDREQUESTTYPE) @@ -125,8 +125,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=22619, - serialized_end=22692, + serialized_start=24145, + serialized_end=24218, ) _sym_db.RegisterEnumDescriptor(_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0_RESULTTYPE) @@ -155,8 +155,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=23614, - serialized_end=23693, + serialized_start=25140, + serialized_end=25219, ) _sym_db.RegisterEnumDescriptor(_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_FINISHEDVOTEINFO_FINISHEDVOTEOUTCOME) @@ -185,8 +185,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=27322, - serialized_end=27383, + serialized_start=28848, + serialized_end=28909, ) _sym_db.RegisterEnumDescriptor(_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE_VOTECHOICETYPE) @@ -210,8 +210,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=45947, - serialized_end=45985, + serialized_start=47473, + serialized_end=47511, ) _sym_db.RegisterEnumDescriptor(_GETGROUPACTIONSREQUEST_ACTIONSTATUS) @@ -235,8 +235,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=47232, - serialized_end=47267, + serialized_start=48758, + serialized_end=48793, ) _sym_db.RegisterEnumDescriptor(_GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_EMERGENCYACTIONEVENT_ACTIONTYPE) @@ -260,12 +260,493 @@ ], containing_type=None, serialized_options=None, - serialized_start=45947, - serialized_end=45985, + serialized_start=47473, + serialized_end=47511, ) _sym_db.RegisterEnumDescriptor(_GETGROUPACTIONSIGNERSREQUEST_ACTIONSTATUS) +_PLATFORMSUBSCRIPTIONREQUEST_PLATFORMSUBSCRIPTIONREQUESTV0 = _descriptor.Descriptor( + name='PlatformSubscriptionRequestV0', + full_name='org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='filter', full_name='org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.filter', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keepalive', full_name='org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.keepalive', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=272, + serialized_end=383, +) + +_PLATFORMSUBSCRIPTIONREQUEST = _descriptor.Descriptor( + name='PlatformSubscriptionRequest', + full_name='org.dash.platform.dapi.v0.PlatformSubscriptionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='v0', full_name='org.dash.platform.dapi.v0.PlatformSubscriptionRequest.v0', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_PLATFORMSUBSCRIPTIONREQUEST_PLATFORMSUBSCRIPTIONREQUESTV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.PlatformSubscriptionRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=141, + serialized_end=394, +) + + +_PLATFORMSUBSCRIPTIONRESPONSE_PLATFORMSUBSCRIPTIONRESPONSEV0 = _descriptor.Descriptor( + name='PlatformSubscriptionResponseV0', + full_name='org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='subscription_id', full_name='org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.subscription_id', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='event', full_name='org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.event', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=531, + serialized_end=647, +) + +_PLATFORMSUBSCRIPTIONRESPONSE = _descriptor.Descriptor( + name='PlatformSubscriptionResponse', + full_name='org.dash.platform.dapi.v0.PlatformSubscriptionResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='v0', full_name='org.dash.platform.dapi.v0.PlatformSubscriptionResponse.v0', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_PLATFORMSUBSCRIPTIONRESPONSE_PLATFORMSUBSCRIPTIONRESPONSEV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.PlatformSubscriptionResponse.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=397, + serialized_end=658, +) + + +_PLATFORMFILTERV0_ALLEVENTS = _descriptor.Descriptor( + name='AllEvents', + full_name='org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=946, + serialized_end=957, +) + +_PLATFORMFILTERV0_BLOCKCOMMITTED = _descriptor.Descriptor( + name='BlockCommitted', + full_name='org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=959, + serialized_end=975, +) + +_PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER = _descriptor.Descriptor( + name='StateTransitionResultFilter', + full_name='org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='tx_hash', full_name='org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.tx_hash', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_tx_hash', full_name='org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter._tx_hash', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=977, + serialized_end=1040, +) + +_PLATFORMFILTERV0 = _descriptor.Descriptor( + name='PlatformFilterV0', + full_name='org.dash.platform.dapi.v0.PlatformFilterV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='all', full_name='org.dash.platform.dapi.v0.PlatformFilterV0.all', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='block_committed', full_name='org.dash.platform.dapi.v0.PlatformFilterV0.block_committed', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='state_transition_result', full_name='org.dash.platform.dapi.v0.PlatformFilterV0.state_transition_result', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_PLATFORMFILTERV0_ALLEVENTS, _PLATFORMFILTERV0_BLOCKCOMMITTED, _PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='kind', full_name='org.dash.platform.dapi.v0.PlatformFilterV0.kind', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=661, + serialized_end=1048, +) + + +_PLATFORMEVENTV0_BLOCKMETADATA = _descriptor.Descriptor( + name='BlockMetadata', + full_name='org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='height', full_name='org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.height', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'0\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='time_ms', full_name='org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.time_ms', index=1, + number=2, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'0\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='block_id_hash', full_name='org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.block_id_hash', index=2, + number=3, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1338, + serialized_end=1417, +) + +_PLATFORMEVENTV0_BLOCKCOMMITTED = _descriptor.Descriptor( + name='BlockCommitted', + full_name='org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='meta', full_name='org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.meta', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tx_count', full_name='org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.tx_count', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1419, + serialized_end=1525, +) + +_PLATFORMEVENTV0_STATETRANSITIONFINALIZED = _descriptor.Descriptor( + name='StateTransitionFinalized', + full_name='org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='meta', full_name='org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.meta', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tx_hash', full_name='org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.tx_hash', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1527, + serialized_end=1642, +) + +_PLATFORMEVENTV0_KEEPALIVE = _descriptor.Descriptor( + name='Keepalive', + full_name='org.dash.platform.dapi.v0.PlatformEventV0.Keepalive', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1644, + serialized_end=1655, +) + +_PLATFORMEVENTV0 = _descriptor.Descriptor( + name='PlatformEventV0', + full_name='org.dash.platform.dapi.v0.PlatformEventV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='block_committed', full_name='org.dash.platform.dapi.v0.PlatformEventV0.block_committed', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='state_transition_finalized', full_name='org.dash.platform.dapi.v0.PlatformEventV0.state_transition_finalized', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keepalive', full_name='org.dash.platform.dapi.v0.PlatformEventV0.keepalive', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_PLATFORMEVENTV0_BLOCKMETADATA, _PLATFORMEVENTV0_BLOCKCOMMITTED, _PLATFORMEVENTV0_STATETRANSITIONFINALIZED, _PLATFORMEVENTV0_KEEPALIVE, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='event', full_name='org.dash.platform.dapi.v0.PlatformEventV0.event', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1051, + serialized_end=1664, +) + + _PROOF = _descriptor.Descriptor( name='Proof', full_name='org.dash.platform.dapi.v0.Proof', @@ -328,8 +809,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=141, - serialized_end=270, + serialized_start=1667, + serialized_end=1796, ) @@ -395,8 +876,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=273, - serialized_end=425, + serialized_start=1799, + serialized_end=1951, ) @@ -441,8 +922,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=427, - serialized_end=503, + serialized_start=1953, + serialized_end=2029, ) @@ -473,8 +954,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=505, - serialized_end=564, + serialized_start=2031, + serialized_end=2090, ) @@ -498,8 +979,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=566, - serialized_end=600, + serialized_start=2092, + serialized_end=2126, ) @@ -537,8 +1018,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=707, - serialized_end=756, + serialized_start=2233, + serialized_end=2282, ) _GETIDENTITYREQUEST = _descriptor.Descriptor( @@ -573,8 +1054,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=603, - serialized_end=767, + serialized_start=2129, + serialized_end=2293, ) @@ -612,8 +1093,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=889, - serialized_end=952, + serialized_start=2415, + serialized_end=2478, ) _GETIDENTITYNONCEREQUEST = _descriptor.Descriptor( @@ -648,8 +1129,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=770, - serialized_end=963, + serialized_start=2296, + serialized_end=2489, ) @@ -694,8 +1175,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1109, - serialized_end=1201, + serialized_start=2635, + serialized_end=2727, ) _GETIDENTITYCONTRACTNONCEREQUEST = _descriptor.Descriptor( @@ -730,8 +1211,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=966, - serialized_end=1212, + serialized_start=2492, + serialized_end=2738, ) @@ -769,8 +1250,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1340, - serialized_end=1396, + serialized_start=2866, + serialized_end=2922, ) _GETIDENTITYBALANCEREQUEST = _descriptor.Descriptor( @@ -805,8 +1286,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=1215, - serialized_end=1407, + serialized_start=2741, + serialized_end=2933, ) @@ -844,8 +1325,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1568, - serialized_end=1635, + serialized_start=3094, + serialized_end=3161, ) _GETIDENTITYBALANCEANDREVISIONREQUEST = _descriptor.Descriptor( @@ -880,8 +1361,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=1410, - serialized_end=1646, + serialized_start=2936, + serialized_end=3172, ) @@ -931,8 +1412,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=1757, - serialized_end=1924, + serialized_start=3283, + serialized_end=3450, ) _GETIDENTITYRESPONSE = _descriptor.Descriptor( @@ -967,8 +1448,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=1649, - serialized_end=1935, + serialized_start=3175, + serialized_end=3461, ) @@ -1018,8 +1499,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2061, - serialized_end=2243, + serialized_start=3587, + serialized_end=3769, ) _GETIDENTITYNONCERESPONSE = _descriptor.Descriptor( @@ -1054,8 +1535,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=1938, - serialized_end=2254, + serialized_start=3464, + serialized_end=3780, ) @@ -1105,8 +1586,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2404, - serialized_end=2603, + serialized_start=3930, + serialized_end=4129, ) _GETIDENTITYCONTRACTNONCERESPONSE = _descriptor.Descriptor( @@ -1141,8 +1622,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2257, - serialized_end=2614, + serialized_start=3783, + serialized_end=4140, ) @@ -1192,8 +1673,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2746, - serialized_end=2923, + serialized_start=4272, + serialized_end=4449, ) _GETIDENTITYBALANCERESPONSE = _descriptor.Descriptor( @@ -1228,8 +1709,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2617, - serialized_end=2934, + serialized_start=4143, + serialized_end=4460, ) @@ -1267,8 +1748,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3414, - serialized_end=3477, + serialized_start=4940, + serialized_end=5003, ) _GETIDENTITYBALANCEANDREVISIONRESPONSE_GETIDENTITYBALANCEANDREVISIONRESPONSEV0 = _descriptor.Descriptor( @@ -1317,8 +1798,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3099, - serialized_end=3487, + serialized_start=4625, + serialized_end=5013, ) _GETIDENTITYBALANCEANDREVISIONRESPONSE = _descriptor.Descriptor( @@ -1353,8 +1834,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2937, - serialized_end=3498, + serialized_start=4463, + serialized_end=5024, ) @@ -1404,8 +1885,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3501, - serialized_end=3710, + serialized_start=5027, + serialized_end=5236, ) @@ -1429,8 +1910,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3712, - serialized_end=3721, + serialized_start=5238, + serialized_end=5247, ) @@ -1461,8 +1942,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3723, - serialized_end=3754, + serialized_start=5249, + serialized_end=5280, ) @@ -1500,8 +1981,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3845, - serialized_end=3939, + serialized_start=5371, + serialized_end=5465, ) _SEARCHKEY = _descriptor.Descriptor( @@ -1531,8 +2012,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3757, - serialized_end=3939, + serialized_start=5283, + serialized_end=5465, ) @@ -1570,8 +2051,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4057, - serialized_end=4176, + serialized_start=5583, + serialized_end=5702, ) _SECURITYLEVELMAP = _descriptor.Descriptor( @@ -1602,8 +2083,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3942, - serialized_end=4261, + serialized_start=5468, + serialized_end=5787, ) @@ -1662,8 +2143,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4381, - serialized_end=4599, + serialized_start=5907, + serialized_end=6125, ) _GETIDENTITYKEYSREQUEST = _descriptor.Descriptor( @@ -1698,8 +2179,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=4264, - serialized_end=4610, + serialized_start=5790, + serialized_end=6136, ) @@ -1730,8 +2211,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4975, - serialized_end=5001, + serialized_start=6501, + serialized_end=6527, ) _GETIDENTITYKEYSRESPONSE_GETIDENTITYKEYSRESPONSEV0 = _descriptor.Descriptor( @@ -1780,8 +2261,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=4733, - serialized_end=5011, + serialized_start=6259, + serialized_end=6537, ) _GETIDENTITYKEYSRESPONSE = _descriptor.Descriptor( @@ -1816,8 +2297,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=4613, - serialized_end=5022, + serialized_start=6139, + serialized_end=6548, ) @@ -1881,8 +2362,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5172, - serialized_end=5381, + serialized_start=6698, + serialized_end=6907, ) _GETIDENTITIESCONTRACTKEYSREQUEST = _descriptor.Descriptor( @@ -1917,8 +2398,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5025, - serialized_end=5392, + serialized_start=6551, + serialized_end=6918, ) @@ -1956,8 +2437,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5839, - serialized_end=5928, + serialized_start=7365, + serialized_end=7454, ) _GETIDENTITIESCONTRACTKEYSRESPONSE_GETIDENTITIESCONTRACTKEYSRESPONSEV0_IDENTITYKEYS = _descriptor.Descriptor( @@ -1994,8 +2475,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5931, - serialized_end=6090, + serialized_start=7457, + serialized_end=7616, ) _GETIDENTITIESCONTRACTKEYSRESPONSE_GETIDENTITIESCONTRACTKEYSRESPONSEV0_IDENTITIESKEYS = _descriptor.Descriptor( @@ -2025,8 +2506,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6093, - serialized_end=6237, + serialized_start=7619, + serialized_end=7763, ) _GETIDENTITIESCONTRACTKEYSRESPONSE_GETIDENTITIESCONTRACTKEYSRESPONSEV0 = _descriptor.Descriptor( @@ -2075,8 +2556,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5545, - serialized_end=6247, + serialized_start=7071, + serialized_end=7773, ) _GETIDENTITIESCONTRACTKEYSRESPONSE = _descriptor.Descriptor( @@ -2111,8 +2592,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5395, - serialized_end=6258, + serialized_start=6921, + serialized_end=7784, ) @@ -2162,8 +2643,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6438, - serialized_end=6542, + serialized_start=7964, + serialized_end=8068, ) _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST = _descriptor.Descriptor( @@ -2198,8 +2679,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6261, - serialized_end=6553, + serialized_start=7787, + serialized_end=8079, ) @@ -2237,8 +2718,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7059, - serialized_end=7122, + serialized_start=8585, + serialized_end=8648, ) _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODESPROPOSEDBLOCKS = _descriptor.Descriptor( @@ -2268,8 +2749,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7125, - serialized_end=7321, + serialized_start=8651, + serialized_end=8847, ) _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0 = _descriptor.Descriptor( @@ -2318,8 +2799,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6721, - serialized_end=7331, + serialized_start=8247, + serialized_end=8857, ) _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE = _descriptor.Descriptor( @@ -2354,8 +2835,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6556, - serialized_end=7342, + serialized_start=8082, + serialized_end=8868, ) @@ -2429,8 +2910,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=7529, - serialized_end=7704, + serialized_start=9055, + serialized_end=9230, ) _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST = _descriptor.Descriptor( @@ -2465,8 +2946,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=7345, - serialized_end=7715, + serialized_start=8871, + serialized_end=9241, ) @@ -2504,8 +2985,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7852, - serialized_end=7912, + serialized_start=9378, + serialized_end=9438, ) _GETIDENTITIESBALANCESREQUEST = _descriptor.Descriptor( @@ -2540,8 +3021,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=7718, - serialized_end=7923, + serialized_start=9244, + serialized_end=9449, ) @@ -2584,8 +3065,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8354, - serialized_end=8430, + serialized_start=9880, + serialized_end=9956, ) _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITIESBALANCES = _descriptor.Descriptor( @@ -2615,8 +3096,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8433, - serialized_end=8576, + serialized_start=9959, + serialized_end=10102, ) _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0 = _descriptor.Descriptor( @@ -2665,8 +3146,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8064, - serialized_end=8586, + serialized_start=9590, + serialized_end=10112, ) _GETIDENTITIESBALANCESRESPONSE = _descriptor.Descriptor( @@ -2701,8 +3182,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=7926, - serialized_end=8597, + serialized_start=9452, + serialized_end=10123, ) @@ -2740,8 +3221,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8716, - serialized_end=8769, + serialized_start=10242, + serialized_end=10295, ) _GETDATACONTRACTREQUEST = _descriptor.Descriptor( @@ -2776,8 +3257,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8600, - serialized_end=8780, + serialized_start=10126, + serialized_end=10306, ) @@ -2827,8 +3308,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8903, - serialized_end=9079, + serialized_start=10429, + serialized_end=10605, ) _GETDATACONTRACTRESPONSE = _descriptor.Descriptor( @@ -2863,8 +3344,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8783, - serialized_end=9090, + serialized_start=10309, + serialized_end=10616, ) @@ -2902,8 +3383,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9212, - serialized_end=9267, + serialized_start=10738, + serialized_end=10793, ) _GETDATACONTRACTSREQUEST = _descriptor.Descriptor( @@ -2938,8 +3419,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=9093, - serialized_end=9278, + serialized_start=10619, + serialized_end=10804, ) @@ -2977,8 +3458,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9403, - serialized_end=9494, + serialized_start=10929, + serialized_end=11020, ) _GETDATACONTRACTSRESPONSE_DATACONTRACTS = _descriptor.Descriptor( @@ -3008,8 +3489,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9496, - serialized_end=9613, + serialized_start=11022, + serialized_end=11139, ) _GETDATACONTRACTSRESPONSE_GETDATACONTRACTSRESPONSEV0 = _descriptor.Descriptor( @@ -3058,8 +3539,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=9616, - serialized_end=9861, + serialized_start=11142, + serialized_end=11387, ) _GETDATACONTRACTSRESPONSE = _descriptor.Descriptor( @@ -3094,8 +3575,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=9281, - serialized_end=9872, + serialized_start=10807, + serialized_end=11398, ) @@ -3154,8 +3635,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10013, - serialized_end=10189, + serialized_start=11539, + serialized_end=11715, ) _GETDATACONTRACTHISTORYREQUEST = _descriptor.Descriptor( @@ -3190,8 +3671,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=9875, - serialized_end=10200, + serialized_start=11401, + serialized_end=11726, ) @@ -3229,8 +3710,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10640, - serialized_end=10699, + serialized_start=12166, + serialized_end=12225, ) _GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORY = _descriptor.Descriptor( @@ -3260,8 +3741,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10702, - serialized_end=10872, + serialized_start=12228, + serialized_end=12398, ) _GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0 = _descriptor.Descriptor( @@ -3310,8 +3791,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=10344, - serialized_end=10882, + serialized_start=11870, + serialized_end=12408, ) _GETDATACONTRACTHISTORYRESPONSE = _descriptor.Descriptor( @@ -3346,8 +3827,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=10203, - serialized_end=10893, + serialized_start=11729, + serialized_end=12419, ) @@ -3432,8 +3913,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11004, - serialized_end=11191, + serialized_start=12530, + serialized_end=12717, ) _GETDOCUMENTSREQUEST = _descriptor.Descriptor( @@ -3468,8 +3949,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=10896, - serialized_end=11202, + serialized_start=12422, + serialized_end=12728, ) @@ -3500,8 +3981,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11559, - serialized_end=11589, + serialized_start=13085, + serialized_end=13115, ) _GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0 = _descriptor.Descriptor( @@ -3550,8 +4031,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11316, - serialized_end=11599, + serialized_start=12842, + serialized_end=13125, ) _GETDOCUMENTSRESPONSE = _descriptor.Descriptor( @@ -3586,8 +4067,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11205, - serialized_end=11610, + serialized_start=12731, + serialized_end=13136, ) @@ -3625,8 +4106,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11762, - serialized_end=11839, + serialized_start=13288, + serialized_end=13365, ) _GETIDENTITYBYPUBLICKEYHASHREQUEST = _descriptor.Descriptor( @@ -3661,8 +4142,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11613, - serialized_end=11850, + serialized_start=13139, + serialized_end=13376, ) @@ -3712,8 +4193,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=12006, - serialized_end=12188, + serialized_start=13532, + serialized_end=13714, ) _GETIDENTITYBYPUBLICKEYHASHRESPONSE = _descriptor.Descriptor( @@ -3748,8 +4229,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11853, - serialized_end=12199, + serialized_start=13379, + serialized_end=13725, ) @@ -3799,8 +4280,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=12380, - serialized_end=12508, + serialized_start=13906, + serialized_end=14034, ) _GETIDENTITYBYNONUNIQUEPUBLICKEYHASHREQUEST = _descriptor.Descriptor( @@ -3835,8 +4316,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=12202, - serialized_end=12519, + serialized_start=13728, + serialized_end=14045, ) @@ -3872,8 +4353,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=13132, - serialized_end=13186, + serialized_start=14658, + serialized_end=14712, ) _GETIDENTITYBYNONUNIQUEPUBLICKEYHASHRESPONSE_GETIDENTITYBYNONUNIQUEPUBLICKEYHASHRESPONSEV0_IDENTITYPROVEDRESPONSE = _descriptor.Descriptor( @@ -3915,8 +4396,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=13189, - serialized_end=13355, + serialized_start=14715, + serialized_end=14881, ) _GETIDENTITYBYNONUNIQUEPUBLICKEYHASHRESPONSE_GETIDENTITYBYNONUNIQUEPUBLICKEYHASHRESPONSEV0 = _descriptor.Descriptor( @@ -3965,8 +4446,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=12703, - serialized_end=13365, + serialized_start=14229, + serialized_end=14891, ) _GETIDENTITYBYNONUNIQUEPUBLICKEYHASHRESPONSE = _descriptor.Descriptor( @@ -4001,8 +4482,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=12522, - serialized_end=13376, + serialized_start=14048, + serialized_end=14902, ) @@ -4040,8 +4521,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=13534, - serialized_end=13619, + serialized_start=15060, + serialized_end=15145, ) _WAITFORSTATETRANSITIONRESULTREQUEST = _descriptor.Descriptor( @@ -4076,8 +4557,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=13379, - serialized_end=13630, + serialized_start=14905, + serialized_end=15156, ) @@ -4127,8 +4608,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=13792, - serialized_end=14031, + serialized_start=15318, + serialized_end=15557, ) _WAITFORSTATETRANSITIONRESULTRESPONSE = _descriptor.Descriptor( @@ -4163,8 +4644,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=13633, - serialized_end=14042, + serialized_start=15159, + serialized_end=15568, ) @@ -4202,8 +4683,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=14170, - serialized_end=14230, + serialized_start=15696, + serialized_end=15756, ) _GETCONSENSUSPARAMSREQUEST = _descriptor.Descriptor( @@ -4238,8 +4719,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=14045, - serialized_end=14241, + serialized_start=15571, + serialized_end=15767, ) @@ -4284,8 +4765,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=14372, - serialized_end=14452, + serialized_start=15898, + serialized_end=15978, ) _GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSEVIDENCE = _descriptor.Descriptor( @@ -4329,8 +4810,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=14454, - serialized_end=14552, + serialized_start=15980, + serialized_end=16078, ) _GETCONSENSUSPARAMSRESPONSE_GETCONSENSUSPARAMSRESPONSEV0 = _descriptor.Descriptor( @@ -4367,8 +4848,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=14555, - serialized_end=14773, + serialized_start=16081, + serialized_end=16299, ) _GETCONSENSUSPARAMSRESPONSE = _descriptor.Descriptor( @@ -4403,8 +4884,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=14244, - serialized_end=14784, + serialized_start=15770, + serialized_end=16310, ) @@ -4435,8 +4916,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=14948, - serialized_end=15004, + serialized_start=16474, + serialized_end=16530, ) _GETPROTOCOLVERSIONUPGRADESTATEREQUEST = _descriptor.Descriptor( @@ -4471,8 +4952,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=14787, - serialized_end=15015, + serialized_start=16313, + serialized_end=16541, ) @@ -4503,8 +4984,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15480, - serialized_end=15630, + serialized_start=17006, + serialized_end=17156, ) _GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONENTRY = _descriptor.Descriptor( @@ -4541,8 +5022,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15632, - serialized_end=15690, + serialized_start=17158, + serialized_end=17216, ) _GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0 = _descriptor.Descriptor( @@ -4591,8 +5072,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=15183, - serialized_end=15700, + serialized_start=16709, + serialized_end=17226, ) _GETPROTOCOLVERSIONUPGRADESTATERESPONSE = _descriptor.Descriptor( @@ -4627,8 +5108,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=15018, - serialized_end=15711, + serialized_start=16544, + serialized_end=17237, ) @@ -4673,8 +5154,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15891, - serialized_end=15994, + serialized_start=17417, + serialized_end=17520, ) _GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUEST = _descriptor.Descriptor( @@ -4709,8 +5190,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=15714, - serialized_end=16005, + serialized_start=17240, + serialized_end=17531, ) @@ -4741,8 +5222,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16508, - serialized_end=16683, + serialized_start=18034, + serialized_end=18209, ) _GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNAL = _descriptor.Descriptor( @@ -4779,8 +5260,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16685, - serialized_end=16738, + serialized_start=18211, + serialized_end=18264, ) _GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0 = _descriptor.Descriptor( @@ -4829,8 +5310,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=16189, - serialized_end=16748, + serialized_start=17715, + serialized_end=18274, ) _GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE = _descriptor.Descriptor( @@ -4865,8 +5346,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=16008, - serialized_end=16759, + serialized_start=17534, + serialized_end=18285, ) @@ -4918,8 +5399,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16872, - serialized_end=16996, + serialized_start=18398, + serialized_end=18522, ) _GETEPOCHSINFOREQUEST = _descriptor.Descriptor( @@ -4954,8 +5435,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=16762, - serialized_end=17007, + serialized_start=18288, + serialized_end=18533, ) @@ -4986,8 +5467,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=17368, - serialized_end=17485, + serialized_start=18894, + serialized_end=19011, ) _GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFO = _descriptor.Descriptor( @@ -5052,8 +5533,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=17488, - serialized_end=17654, + serialized_start=19014, + serialized_end=19180, ) _GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0 = _descriptor.Descriptor( @@ -5102,8 +5583,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=17124, - serialized_end=17664, + serialized_start=18650, + serialized_end=19190, ) _GETEPOCHSINFORESPONSE = _descriptor.Descriptor( @@ -5138,8 +5619,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=17010, - serialized_end=17675, + serialized_start=18536, + serialized_end=19201, ) @@ -5198,8 +5679,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=17816, - serialized_end=17986, + serialized_start=19342, + serialized_end=19512, ) _GETFINALIZEDEPOCHINFOSREQUEST = _descriptor.Descriptor( @@ -5234,8 +5715,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=17678, - serialized_end=17997, + serialized_start=19204, + serialized_end=19523, ) @@ -5266,8 +5747,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18423, - serialized_end=18587, + serialized_start=19949, + serialized_end=20113, ) _GETFINALIZEDEPOCHINFOSRESPONSE_GETFINALIZEDEPOCHINFOSRESPONSEV0_FINALIZEDEPOCHINFO = _descriptor.Descriptor( @@ -5381,8 +5862,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18590, - serialized_end=19133, + serialized_start=20116, + serialized_end=20659, ) _GETFINALIZEDEPOCHINFOSRESPONSE_GETFINALIZEDEPOCHINFOSRESPONSEV0_BLOCKPROPOSER = _descriptor.Descriptor( @@ -5419,8 +5900,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19135, - serialized_end=19192, + serialized_start=20661, + serialized_end=20718, ) _GETFINALIZEDEPOCHINFOSRESPONSE_GETFINALIZEDEPOCHINFOSRESPONSEV0 = _descriptor.Descriptor( @@ -5469,8 +5950,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=18141, - serialized_end=19202, + serialized_start=19667, + serialized_end=20728, ) _GETFINALIZEDEPOCHINFOSRESPONSE = _descriptor.Descriptor( @@ -5505,8 +5986,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=18000, - serialized_end=19213, + serialized_start=19526, + serialized_end=20739, ) @@ -5544,8 +6025,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19708, - serialized_end=19777, + serialized_start=21234, + serialized_end=21303, ) _GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0 = _descriptor.Descriptor( @@ -5641,8 +6122,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=19351, - serialized_end=19811, + serialized_start=20877, + serialized_end=21337, ) _GETCONTESTEDRESOURCESREQUEST = _descriptor.Descriptor( @@ -5677,8 +6158,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=19216, - serialized_end=19822, + serialized_start=20742, + serialized_end=21348, ) @@ -5709,8 +6190,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20264, - serialized_end=20324, + serialized_start=21790, + serialized_end=21850, ) _GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0 = _descriptor.Descriptor( @@ -5759,8 +6240,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=19963, - serialized_end=20334, + serialized_start=21489, + serialized_end=21860, ) _GETCONTESTEDRESOURCESRESPONSE = _descriptor.Descriptor( @@ -5795,8 +6276,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=19825, - serialized_end=20345, + serialized_start=21351, + serialized_end=21871, ) @@ -5834,8 +6315,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20858, - serialized_end=20931, + serialized_start=22384, + serialized_end=22457, ) _GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_ENDATTIMEINFO = _descriptor.Descriptor( @@ -5872,8 +6353,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20933, - serialized_end=21000, + serialized_start=22459, + serialized_end=22526, ) _GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0 = _descriptor.Descriptor( @@ -5958,8 +6439,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=20483, - serialized_end=21059, + serialized_start=22009, + serialized_end=22585, ) _GETVOTEPOLLSBYENDDATEREQUEST = _descriptor.Descriptor( @@ -5994,8 +6475,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=20348, - serialized_end=21070, + serialized_start=21874, + serialized_end=22596, ) @@ -6033,8 +6514,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=21519, - serialized_end=21605, + serialized_start=23045, + serialized_end=23131, ) _GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMPS = _descriptor.Descriptor( @@ -6071,8 +6552,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=21608, - serialized_end=21823, + serialized_start=23134, + serialized_end=23349, ) _GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0 = _descriptor.Descriptor( @@ -6121,8 +6602,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=21211, - serialized_end=21833, + serialized_start=22737, + serialized_end=23359, ) _GETVOTEPOLLSBYENDDATERESPONSE = _descriptor.Descriptor( @@ -6157,8 +6638,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=21073, - serialized_end=21844, + serialized_start=22599, + serialized_end=23370, ) @@ -6196,8 +6677,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22533, - serialized_end=22617, + serialized_start=24059, + serialized_end=24143, ) _GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0 = _descriptor.Descriptor( @@ -6294,8 +6775,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=22006, - serialized_end=22731, + serialized_start=23532, + serialized_end=24257, ) _GETCONTESTEDRESOURCEVOTESTATEREQUEST = _descriptor.Descriptor( @@ -6330,8 +6811,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=21847, - serialized_end=22742, + serialized_start=23373, + serialized_end=24268, ) @@ -6403,8 +6884,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=23242, - serialized_end=23716, + serialized_start=24768, + serialized_end=25242, ) _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTESTEDRESOURCECONTENDERS = _descriptor.Descriptor( @@ -6470,8 +6951,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=23719, - serialized_end=24171, + serialized_start=25245, + serialized_end=25697, ) _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTENDER = _descriptor.Descriptor( @@ -6525,8 +7006,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=24173, - serialized_end=24280, + serialized_start=25699, + serialized_end=25806, ) _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0 = _descriptor.Descriptor( @@ -6575,8 +7056,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=22907, - serialized_end=24290, + serialized_start=24433, + serialized_end=25816, ) _GETCONTESTEDRESOURCEVOTESTATERESPONSE = _descriptor.Descriptor( @@ -6611,8 +7092,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=22745, - serialized_end=24301, + serialized_start=24271, + serialized_end=25827, ) @@ -6650,8 +7131,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22533, - serialized_end=22617, + serialized_start=24059, + serialized_end=24143, ) _GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0 = _descriptor.Descriptor( @@ -6747,8 +7228,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=24488, - serialized_end=25018, + serialized_start=26014, + serialized_end=26544, ) _GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST = _descriptor.Descriptor( @@ -6783,8 +7264,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=24304, - serialized_end=25029, + serialized_start=25830, + serialized_end=26555, ) @@ -6822,8 +7303,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=25569, - serialized_end=25636, + serialized_start=27095, + serialized_end=27162, ) _GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0 = _descriptor.Descriptor( @@ -6872,8 +7353,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=25219, - serialized_end=25646, + serialized_start=26745, + serialized_end=27172, ) _GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE = _descriptor.Descriptor( @@ -6908,8 +7389,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=25032, - serialized_end=25657, + serialized_start=26558, + serialized_end=27183, ) @@ -6947,8 +7428,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=26206, - serialized_end=26303, + serialized_start=27732, + serialized_end=27829, ) _GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0 = _descriptor.Descriptor( @@ -7018,8 +7499,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=25831, - serialized_end=26334, + serialized_start=27357, + serialized_end=27860, ) _GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST = _descriptor.Descriptor( @@ -7054,8 +7535,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=25660, - serialized_end=26345, + serialized_start=27186, + serialized_end=27871, ) @@ -7093,8 +7574,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=26848, - serialized_end=27095, + serialized_start=28374, + serialized_end=28621, ) _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE = _descriptor.Descriptor( @@ -7137,8 +7618,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=27098, - serialized_end=27399, + serialized_start=28624, + serialized_end=28925, ) _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTE = _descriptor.Descriptor( @@ -7189,8 +7670,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=27402, - serialized_end=27679, + serialized_start=28928, + serialized_end=29205, ) _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0 = _descriptor.Descriptor( @@ -7239,8 +7720,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=26522, - serialized_end=27689, + serialized_start=28048, + serialized_end=29215, ) _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE = _descriptor.Descriptor( @@ -7275,8 +7756,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=26348, - serialized_end=27700, + serialized_start=27874, + serialized_end=29226, ) @@ -7314,8 +7795,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=27864, - serialized_end=27932, + serialized_start=29390, + serialized_end=29458, ) _GETPREFUNDEDSPECIALIZEDBALANCEREQUEST = _descriptor.Descriptor( @@ -7350,8 +7831,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=27703, - serialized_end=27943, + serialized_start=29229, + serialized_end=29469, ) @@ -7401,8 +7882,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=28111, - serialized_end=28300, + serialized_start=29637, + serialized_end=29826, ) _GETPREFUNDEDSPECIALIZEDBALANCERESPONSE = _descriptor.Descriptor( @@ -7437,8 +7918,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=27946, - serialized_end=28311, + serialized_start=29472, + serialized_end=29837, ) @@ -7469,8 +7950,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=28460, - serialized_end=28511, + serialized_start=29986, + serialized_end=30037, ) _GETTOTALCREDITSINPLATFORMREQUEST = _descriptor.Descriptor( @@ -7505,8 +7986,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=28314, - serialized_end=28522, + serialized_start=29840, + serialized_end=30048, ) @@ -7556,8 +8037,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=28675, - serialized_end=28859, + serialized_start=30201, + serialized_end=30385, ) _GETTOTALCREDITSINPLATFORMRESPONSE = _descriptor.Descriptor( @@ -7592,8 +8073,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=28525, - serialized_end=28870, + serialized_start=30051, + serialized_end=30396, ) @@ -7638,8 +8119,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=28989, - serialized_end=29058, + serialized_start=30515, + serialized_end=30584, ) _GETPATHELEMENTSREQUEST = _descriptor.Descriptor( @@ -7674,8 +8155,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=28873, - serialized_end=29069, + serialized_start=30399, + serialized_end=30595, ) @@ -7706,8 +8187,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=29442, - serialized_end=29470, + serialized_start=30968, + serialized_end=30996, ) _GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0 = _descriptor.Descriptor( @@ -7756,8 +8237,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=29192, - serialized_end=29480, + serialized_start=30718, + serialized_end=31006, ) _GETPATHELEMENTSRESPONSE = _descriptor.Descriptor( @@ -7792,8 +8273,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=29072, - serialized_end=29491, + serialized_start=30598, + serialized_end=31017, ) @@ -7817,8 +8298,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=29592, - serialized_end=29612, + serialized_start=31118, + serialized_end=31138, ) _GETSTATUSREQUEST = _descriptor.Descriptor( @@ -7853,8 +8334,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=29494, - serialized_end=29623, + serialized_start=31020, + serialized_end=31149, ) @@ -7909,8 +8390,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=30500, - serialized_end=30594, + serialized_start=32026, + serialized_end=32120, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_TENDERDASH = _descriptor.Descriptor( @@ -7947,8 +8428,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=30827, - serialized_end=30867, + serialized_start=32353, + serialized_end=32393, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_DRIVE = _descriptor.Descriptor( @@ -7992,8 +8473,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=30869, - serialized_end=30929, + serialized_start=32395, + serialized_end=32455, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL = _descriptor.Descriptor( @@ -8030,8 +8511,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=30597, - serialized_end=30929, + serialized_start=32123, + serialized_end=32455, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION = _descriptor.Descriptor( @@ -8068,8 +8549,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=30287, - serialized_end=30929, + serialized_start=31813, + serialized_end=32455, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME = _descriptor.Descriptor( @@ -8135,8 +8616,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=30931, - serialized_end=31058, + serialized_start=32457, + serialized_end=32584, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE = _descriptor.Descriptor( @@ -8178,8 +8659,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=31060, - serialized_end=31120, + serialized_start=32586, + serialized_end=32646, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN = _descriptor.Descriptor( @@ -8270,8 +8751,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=31123, - serialized_end=31430, + serialized_start=32649, + serialized_end=32956, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NETWORK = _descriptor.Descriptor( @@ -8315,8 +8796,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=31432, - serialized_end=31499, + serialized_start=32958, + serialized_end=33025, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_STATESYNC = _descriptor.Descriptor( @@ -8395,8 +8876,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=31502, - serialized_end=31763, + serialized_start=33028, + serialized_end=33289, ) _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 = _descriptor.Descriptor( @@ -8461,8 +8942,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=29728, - serialized_end=31763, + serialized_start=31254, + serialized_end=33289, ) _GETSTATUSRESPONSE = _descriptor.Descriptor( @@ -8497,8 +8978,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=29626, - serialized_end=31774, + serialized_start=31152, + serialized_end=33300, ) @@ -8522,8 +9003,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=31911, - serialized_end=31943, + serialized_start=33437, + serialized_end=33469, ) _GETCURRENTQUORUMSINFOREQUEST = _descriptor.Descriptor( @@ -8558,8 +9039,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=31777, - serialized_end=31954, + serialized_start=33303, + serialized_end=33480, ) @@ -8604,8 +9085,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=32094, - serialized_end=32164, + serialized_start=33620, + serialized_end=33690, ) _GETCURRENTQUORUMSINFORESPONSE_VALIDATORSETV0 = _descriptor.Descriptor( @@ -8656,8 +9137,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=32167, - serialized_end=32342, + serialized_start=33693, + serialized_end=33868, ) _GETCURRENTQUORUMSINFORESPONSE_GETCURRENTQUORUMSINFORESPONSEV0 = _descriptor.Descriptor( @@ -8715,8 +9196,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=32345, - serialized_end=32619, + serialized_start=33871, + serialized_end=34145, ) _GETCURRENTQUORUMSINFORESPONSE = _descriptor.Descriptor( @@ -8751,8 +9232,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=31957, - serialized_end=32630, + serialized_start=33483, + serialized_end=34156, ) @@ -8797,8 +9278,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=32776, - serialized_end=32866, + serialized_start=34302, + serialized_end=34392, ) _GETIDENTITYTOKENBALANCESREQUEST = _descriptor.Descriptor( @@ -8833,8 +9314,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=32633, - serialized_end=32877, + serialized_start=34159, + serialized_end=34403, ) @@ -8877,8 +9358,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=33316, - serialized_end=33387, + serialized_start=34842, + serialized_end=34913, ) _GETIDENTITYTOKENBALANCESRESPONSE_GETIDENTITYTOKENBALANCESRESPONSEV0_TOKENBALANCES = _descriptor.Descriptor( @@ -8908,8 +9389,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=33390, - serialized_end=33544, + serialized_start=34916, + serialized_end=35070, ) _GETIDENTITYTOKENBALANCESRESPONSE_GETIDENTITYTOKENBALANCESRESPONSEV0 = _descriptor.Descriptor( @@ -8958,8 +9439,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=33027, - serialized_end=33554, + serialized_start=34553, + serialized_end=35080, ) _GETIDENTITYTOKENBALANCESRESPONSE = _descriptor.Descriptor( @@ -8994,8 +9475,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=32880, - serialized_end=33565, + serialized_start=34406, + serialized_end=35091, ) @@ -9040,8 +9521,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=33717, - serialized_end=33809, + serialized_start=35243, + serialized_end=35335, ) _GETIDENTITIESTOKENBALANCESREQUEST = _descriptor.Descriptor( @@ -9076,8 +9557,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=33568, - serialized_end=33820, + serialized_start=35094, + serialized_end=35346, ) @@ -9120,8 +9601,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=34288, - serialized_end=34370, + serialized_start=35814, + serialized_end=35896, ) _GETIDENTITIESTOKENBALANCESRESPONSE_GETIDENTITIESTOKENBALANCESRESPONSEV0_IDENTITYTOKENBALANCES = _descriptor.Descriptor( @@ -9151,8 +9632,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=34373, - serialized_end=34556, + serialized_start=35899, + serialized_end=36082, ) _GETIDENTITIESTOKENBALANCESRESPONSE_GETIDENTITIESTOKENBALANCESRESPONSEV0 = _descriptor.Descriptor( @@ -9201,8 +9682,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=33976, - serialized_end=34566, + serialized_start=35502, + serialized_end=36092, ) _GETIDENTITIESTOKENBALANCESRESPONSE = _descriptor.Descriptor( @@ -9237,8 +9718,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=33823, - serialized_end=34577, + serialized_start=35349, + serialized_end=36103, ) @@ -9283,8 +9764,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=34714, - serialized_end=34801, + serialized_start=36240, + serialized_end=36327, ) _GETIDENTITYTOKENINFOSREQUEST = _descriptor.Descriptor( @@ -9319,8 +9800,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=34580, - serialized_end=34812, + serialized_start=36106, + serialized_end=36338, ) @@ -9351,8 +9832,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=35226, - serialized_end=35266, + serialized_start=36752, + serialized_end=36792, ) _GETIDENTITYTOKENINFOSRESPONSE_GETIDENTITYTOKENINFOSRESPONSEV0_TOKENINFOENTRY = _descriptor.Descriptor( @@ -9394,8 +9875,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=35269, - serialized_end=35445, + serialized_start=36795, + serialized_end=36971, ) _GETIDENTITYTOKENINFOSRESPONSE_GETIDENTITYTOKENINFOSRESPONSEV0_TOKENINFOS = _descriptor.Descriptor( @@ -9425,8 +9906,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=35448, - serialized_end=35586, + serialized_start=36974, + serialized_end=37112, ) _GETIDENTITYTOKENINFOSRESPONSE_GETIDENTITYTOKENINFOSRESPONSEV0 = _descriptor.Descriptor( @@ -9475,8 +9956,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=34953, - serialized_end=35596, + serialized_start=36479, + serialized_end=37122, ) _GETIDENTITYTOKENINFOSRESPONSE = _descriptor.Descriptor( @@ -9511,8 +9992,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=34815, - serialized_end=35607, + serialized_start=36341, + serialized_end=37133, ) @@ -9557,8 +10038,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=35750, - serialized_end=35839, + serialized_start=37276, + serialized_end=37365, ) _GETIDENTITIESTOKENINFOSREQUEST = _descriptor.Descriptor( @@ -9593,8 +10074,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=35610, - serialized_end=35850, + serialized_start=37136, + serialized_end=37376, ) @@ -9625,8 +10106,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=35226, - serialized_end=35266, + serialized_start=36752, + serialized_end=36792, ) _GETIDENTITIESTOKENINFOSRESPONSE_GETIDENTITIESTOKENINFOSRESPONSEV0_TOKENINFOENTRY = _descriptor.Descriptor( @@ -9668,8 +10149,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=36337, - serialized_end=36520, + serialized_start=37863, + serialized_end=38046, ) _GETIDENTITIESTOKENINFOSRESPONSE_GETIDENTITIESTOKENINFOSRESPONSEV0_IDENTITYTOKENINFOS = _descriptor.Descriptor( @@ -9699,8 +10180,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=36523, - serialized_end=36674, + serialized_start=38049, + serialized_end=38200, ) _GETIDENTITIESTOKENINFOSRESPONSE_GETIDENTITIESTOKENINFOSRESPONSEV0 = _descriptor.Descriptor( @@ -9749,8 +10230,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=35997, - serialized_end=36684, + serialized_start=37523, + serialized_end=38210, ) _GETIDENTITIESTOKENINFOSRESPONSE = _descriptor.Descriptor( @@ -9785,8 +10266,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=35853, - serialized_end=36695, + serialized_start=37379, + serialized_end=38221, ) @@ -9824,8 +10305,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=36817, - serialized_end=36878, + serialized_start=38343, + serialized_end=38404, ) _GETTOKENSTATUSESREQUEST = _descriptor.Descriptor( @@ -9860,8 +10341,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=36698, - serialized_end=36889, + serialized_start=38224, + serialized_end=38415, ) @@ -9904,8 +10385,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=37279, - serialized_end=37347, + serialized_start=38805, + serialized_end=38873, ) _GETTOKENSTATUSESRESPONSE_GETTOKENSTATUSESRESPONSEV0_TOKENSTATUSES = _descriptor.Descriptor( @@ -9935,8 +10416,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=37350, - serialized_end=37486, + serialized_start=38876, + serialized_end=39012, ) _GETTOKENSTATUSESRESPONSE_GETTOKENSTATUSESRESPONSEV0 = _descriptor.Descriptor( @@ -9985,8 +10466,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=37015, - serialized_end=37496, + serialized_start=38541, + serialized_end=39022, ) _GETTOKENSTATUSESRESPONSE = _descriptor.Descriptor( @@ -10021,8 +10502,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=36892, - serialized_end=37507, + serialized_start=38418, + serialized_end=39033, ) @@ -10060,8 +10541,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=37665, - serialized_end=37738, + serialized_start=39191, + serialized_end=39264, ) _GETTOKENDIRECTPURCHASEPRICESREQUEST = _descriptor.Descriptor( @@ -10096,8 +10577,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=37510, - serialized_end=37749, + serialized_start=39036, + serialized_end=39275, ) @@ -10135,8 +10616,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=38239, - serialized_end=38290, + serialized_start=39765, + serialized_end=39816, ) _GETTOKENDIRECTPURCHASEPRICESRESPONSE_GETTOKENDIRECTPURCHASEPRICESRESPONSEV0_PRICINGSCHEDULE = _descriptor.Descriptor( @@ -10166,8 +10647,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=38293, - serialized_end=38460, + serialized_start=39819, + serialized_end=39986, ) _GETTOKENDIRECTPURCHASEPRICESRESPONSE_GETTOKENDIRECTPURCHASEPRICESRESPONSEV0_TOKENDIRECTPURCHASEPRICEENTRY = _descriptor.Descriptor( @@ -10216,8 +10697,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=38463, - serialized_end=38691, + serialized_start=39989, + serialized_end=40217, ) _GETTOKENDIRECTPURCHASEPRICESRESPONSE_GETTOKENDIRECTPURCHASEPRICESRESPONSEV0_TOKENDIRECTPURCHASEPRICES = _descriptor.Descriptor( @@ -10247,8 +10728,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=38694, - serialized_end=38894, + serialized_start=40220, + serialized_end=40420, ) _GETTOKENDIRECTPURCHASEPRICESRESPONSE_GETTOKENDIRECTPURCHASEPRICESRESPONSEV0 = _descriptor.Descriptor( @@ -10297,8 +10778,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=37911, - serialized_end=38904, + serialized_start=39437, + serialized_end=40430, ) _GETTOKENDIRECTPURCHASEPRICESRESPONSE = _descriptor.Descriptor( @@ -10333,8 +10814,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=37752, - serialized_end=38915, + serialized_start=39278, + serialized_end=40441, ) @@ -10372,8 +10853,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=39049, - serialized_end=39113, + serialized_start=40575, + serialized_end=40639, ) _GETTOKENCONTRACTINFOREQUEST = _descriptor.Descriptor( @@ -10408,8 +10889,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=38918, - serialized_end=39124, + serialized_start=40444, + serialized_end=40650, ) @@ -10447,8 +10928,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=39536, - serialized_end=39613, + serialized_start=41062, + serialized_end=41139, ) _GETTOKENCONTRACTINFORESPONSE_GETTOKENCONTRACTINFORESPONSEV0 = _descriptor.Descriptor( @@ -10497,8 +10978,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=39262, - serialized_end=39623, + serialized_start=40788, + serialized_end=41149, ) _GETTOKENCONTRACTINFORESPONSE = _descriptor.Descriptor( @@ -10533,8 +11014,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=39127, - serialized_end=39634, + serialized_start=40653, + serialized_end=41160, ) @@ -10589,8 +11070,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=40067, - serialized_end=40221, + serialized_start=41593, + serialized_end=41747, ) _GETTOKENPREPROGRAMMEDDISTRIBUTIONSREQUEST_GETTOKENPREPROGRAMMEDDISTRIBUTIONSREQUESTV0 = _descriptor.Descriptor( @@ -10651,8 +11132,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=39811, - serialized_end=40249, + serialized_start=41337, + serialized_end=41775, ) _GETTOKENPREPROGRAMMEDDISTRIBUTIONSREQUEST = _descriptor.Descriptor( @@ -10687,8 +11168,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=39637, - serialized_end=40260, + serialized_start=41163, + serialized_end=41786, ) @@ -10726,8 +11207,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=40771, - serialized_end=40833, + serialized_start=42297, + serialized_end=42359, ) _GETTOKENPREPROGRAMMEDDISTRIBUTIONSRESPONSE_GETTOKENPREPROGRAMMEDDISTRIBUTIONSRESPONSEV0_TOKENTIMEDDISTRIBUTIONENTRY = _descriptor.Descriptor( @@ -10764,8 +11245,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=40836, - serialized_end=41048, + serialized_start=42362, + serialized_end=42574, ) _GETTOKENPREPROGRAMMEDDISTRIBUTIONSRESPONSE_GETTOKENPREPROGRAMMEDDISTRIBUTIONSRESPONSEV0_TOKENDISTRIBUTIONS = _descriptor.Descriptor( @@ -10795,8 +11276,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=41051, - serialized_end=41246, + serialized_start=42577, + serialized_end=42772, ) _GETTOKENPREPROGRAMMEDDISTRIBUTIONSRESPONSE_GETTOKENPREPROGRAMMEDDISTRIBUTIONSRESPONSEV0 = _descriptor.Descriptor( @@ -10845,8 +11326,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=40441, - serialized_end=41256, + serialized_start=41967, + serialized_end=42782, ) _GETTOKENPREPROGRAMMEDDISTRIBUTIONSRESPONSE = _descriptor.Descriptor( @@ -10881,8 +11362,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=40263, - serialized_end=41267, + serialized_start=41789, + serialized_end=42793, ) @@ -10920,8 +11401,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=41456, - serialized_end=41529, + serialized_start=42982, + serialized_end=43055, ) _GETTOKENPERPETUALDISTRIBUTIONLASTCLAIMREQUEST_GETTOKENPERPETUALDISTRIBUTIONLASTCLAIMREQUESTV0 = _descriptor.Descriptor( @@ -10977,8 +11458,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=41532, - serialized_end=41773, + serialized_start=43058, + serialized_end=43299, ) _GETTOKENPERPETUALDISTRIBUTIONLASTCLAIMREQUEST = _descriptor.Descriptor( @@ -11013,8 +11494,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=41270, - serialized_end=41784, + serialized_start=42796, + serialized_end=43310, ) @@ -11071,8 +11552,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=42305, - serialized_end=42425, + serialized_start=43831, + serialized_end=43951, ) _GETTOKENPERPETUALDISTRIBUTIONLASTCLAIMRESPONSE_GETTOKENPERPETUALDISTRIBUTIONLASTCLAIMRESPONSEV0 = _descriptor.Descriptor( @@ -11121,8 +11602,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=41977, - serialized_end=42435, + serialized_start=43503, + serialized_end=43961, ) _GETTOKENPERPETUALDISTRIBUTIONLASTCLAIMRESPONSE = _descriptor.Descriptor( @@ -11157,8 +11638,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=41787, - serialized_end=42446, + serialized_start=43313, + serialized_end=43972, ) @@ -11196,8 +11677,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=42577, - serialized_end=42640, + serialized_start=44103, + serialized_end=44166, ) _GETTOKENTOTALSUPPLYREQUEST = _descriptor.Descriptor( @@ -11232,8 +11713,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=42449, - serialized_end=42651, + serialized_start=43975, + serialized_end=44177, ) @@ -11278,8 +11759,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=43072, - serialized_end=43192, + serialized_start=44598, + serialized_end=44718, ) _GETTOKENTOTALSUPPLYRESPONSE_GETTOKENTOTALSUPPLYRESPONSEV0 = _descriptor.Descriptor( @@ -11328,8 +11809,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=42786, - serialized_end=43202, + serialized_start=44312, + serialized_end=44728, ) _GETTOKENTOTALSUPPLYRESPONSE = _descriptor.Descriptor( @@ -11364,8 +11845,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=42654, - serialized_end=43213, + serialized_start=44180, + serialized_end=44739, ) @@ -11410,8 +11891,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=43323, - serialized_end=43415, + serialized_start=44849, + serialized_end=44941, ) _GETGROUPINFOREQUEST = _descriptor.Descriptor( @@ -11446,8 +11927,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=43216, - serialized_end=43426, + serialized_start=44742, + serialized_end=44952, ) @@ -11485,8 +11966,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=43784, - serialized_end=43836, + serialized_start=45310, + serialized_end=45362, ) _GETGROUPINFORESPONSE_GETGROUPINFORESPONSEV0_GROUPINFOENTRY = _descriptor.Descriptor( @@ -11523,8 +12004,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=43839, - serialized_end=43991, + serialized_start=45365, + serialized_end=45517, ) _GETGROUPINFORESPONSE_GETGROUPINFORESPONSEV0_GROUPINFO = _descriptor.Descriptor( @@ -11559,8 +12040,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=43994, - serialized_end=44132, + serialized_start=45520, + serialized_end=45658, ) _GETGROUPINFORESPONSE_GETGROUPINFORESPONSEV0 = _descriptor.Descriptor( @@ -11609,8 +12090,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=43540, - serialized_end=44142, + serialized_start=45066, + serialized_end=45668, ) _GETGROUPINFORESPONSE = _descriptor.Descriptor( @@ -11645,8 +12126,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=43429, - serialized_end=44153, + serialized_start=44955, + serialized_end=45679, ) @@ -11684,8 +12165,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=44266, - serialized_end=44383, + serialized_start=45792, + serialized_end=45909, ) _GETGROUPINFOSREQUEST_GETGROUPINFOSREQUESTV0 = _descriptor.Descriptor( @@ -11746,8 +12227,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=44386, - serialized_end=44638, + serialized_start=45912, + serialized_end=46164, ) _GETGROUPINFOSREQUEST = _descriptor.Descriptor( @@ -11782,8 +12263,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=44156, - serialized_end=44649, + serialized_start=45682, + serialized_end=46175, ) @@ -11821,8 +12302,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=43784, - serialized_end=43836, + serialized_start=45310, + serialized_end=45362, ) _GETGROUPINFOSRESPONSE_GETGROUPINFOSRESPONSEV0_GROUPPOSITIONINFOENTRY = _descriptor.Descriptor( @@ -11866,8 +12347,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=45070, - serialized_end=45265, + serialized_start=46596, + serialized_end=46791, ) _GETGROUPINFOSRESPONSE_GETGROUPINFOSRESPONSEV0_GROUPINFOS = _descriptor.Descriptor( @@ -11897,8 +12378,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=45268, - serialized_end=45398, + serialized_start=46794, + serialized_end=46924, ) _GETGROUPINFOSRESPONSE_GETGROUPINFOSRESPONSEV0 = _descriptor.Descriptor( @@ -11947,8 +12428,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=44766, - serialized_end=45408, + serialized_start=46292, + serialized_end=46934, ) _GETGROUPINFOSRESPONSE = _descriptor.Descriptor( @@ -11983,8 +12464,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=44652, - serialized_end=45419, + serialized_start=46178, + serialized_end=46945, ) @@ -12022,8 +12503,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=45538, - serialized_end=45614, + serialized_start=47064, + serialized_end=47140, ) _GETGROUPACTIONSREQUEST_GETGROUPACTIONSREQUESTV0 = _descriptor.Descriptor( @@ -12098,8 +12579,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=45617, - serialized_end=45945, + serialized_start=47143, + serialized_end=47471, ) _GETGROUPACTIONSREQUEST = _descriptor.Descriptor( @@ -12135,8 +12616,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=45422, - serialized_end=45996, + serialized_start=46948, + serialized_end=47522, ) @@ -12186,8 +12667,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=46378, - serialized_end=46469, + serialized_start=47904, + serialized_end=47995, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_BURNEVENT = _descriptor.Descriptor( @@ -12236,8 +12717,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=46471, - serialized_end=46562, + serialized_start=47997, + serialized_end=48088, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_FREEZEEVENT = _descriptor.Descriptor( @@ -12279,8 +12760,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=46564, - serialized_end=46638, + serialized_start=48090, + serialized_end=48164, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_UNFREEZEEVENT = _descriptor.Descriptor( @@ -12322,8 +12803,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=46640, - serialized_end=46716, + serialized_start=48166, + serialized_end=48242, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_DESTROYFROZENFUNDSEVENT = _descriptor.Descriptor( @@ -12372,8 +12853,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=46718, - serialized_end=46820, + serialized_start=48244, + serialized_end=48346, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_SHAREDENCRYPTEDNOTE = _descriptor.Descriptor( @@ -12417,8 +12898,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=46822, - serialized_end=46922, + serialized_start=48348, + serialized_end=48448, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_PERSONALENCRYPTEDNOTE = _descriptor.Descriptor( @@ -12462,8 +12943,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=46924, - serialized_end=47047, + serialized_start=48450, + serialized_end=48573, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_EMERGENCYACTIONEVENT = _descriptor.Descriptor( @@ -12506,8 +12987,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=47050, - serialized_end=47283, + serialized_start=48576, + serialized_end=48809, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_TOKENCONFIGUPDATEEVENT = _descriptor.Descriptor( @@ -12549,8 +13030,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=47285, - serialized_end=47385, + serialized_start=48811, + serialized_end=48911, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_UPDATEDIRECTPURCHASEPRICEEVENT_PRICEFORQUANTITY = _descriptor.Descriptor( @@ -12587,8 +13068,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=38239, - serialized_end=38290, + serialized_start=39765, + serialized_end=39816, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_UPDATEDIRECTPURCHASEPRICEEVENT_PRICINGSCHEDULE = _descriptor.Descriptor( @@ -12618,8 +13099,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=47677, - serialized_end=47849, + serialized_start=49203, + serialized_end=49375, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_UPDATEDIRECTPURCHASEPRICEEVENT = _descriptor.Descriptor( @@ -12673,8 +13154,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=47388, - serialized_end=47874, + serialized_start=48914, + serialized_end=49400, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_GROUPACTIONEVENT = _descriptor.Descriptor( @@ -12723,8 +13204,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=47877, - serialized_end=48257, + serialized_start=49403, + serialized_end=49783, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_DOCUMENTEVENT = _descriptor.Descriptor( @@ -12759,8 +13240,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=48260, - serialized_end=48399, + serialized_start=49786, + serialized_end=49925, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_DOCUMENTCREATEEVENT = _descriptor.Descriptor( @@ -12790,8 +13271,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=48401, - serialized_end=48448, + serialized_start=49927, + serialized_end=49974, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_CONTRACTUPDATEEVENT = _descriptor.Descriptor( @@ -12821,8 +13302,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=48450, - serialized_end=48497, + serialized_start=49976, + serialized_end=50023, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_CONTRACTEVENT = _descriptor.Descriptor( @@ -12857,8 +13338,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=48500, - serialized_end=48639, + serialized_start=50026, + serialized_end=50165, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_TOKENEVENT = _descriptor.Descriptor( @@ -12942,8 +13423,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=48642, - serialized_end=49619, + serialized_start=50168, + serialized_end=51145, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_GROUPACTIONENTRY = _descriptor.Descriptor( @@ -12980,8 +13461,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=49622, - serialized_end=49769, + serialized_start=51148, + serialized_end=51295, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0_GROUPACTIONS = _descriptor.Descriptor( @@ -13011,8 +13492,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=49772, - serialized_end=49904, + serialized_start=51298, + serialized_end=51430, ) _GETGROUPACTIONSRESPONSE_GETGROUPACTIONSRESPONSEV0 = _descriptor.Descriptor( @@ -13061,8 +13542,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=46119, - serialized_end=49914, + serialized_start=47645, + serialized_end=51440, ) _GETGROUPACTIONSRESPONSE = _descriptor.Descriptor( @@ -13097,8 +13578,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=45999, - serialized_end=49925, + serialized_start=47525, + serialized_end=51451, ) @@ -13157,8 +13638,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=50063, - serialized_end=50269, + serialized_start=51589, + serialized_end=51795, ) _GETGROUPACTIONSIGNERSREQUEST = _descriptor.Descriptor( @@ -13194,8 +13675,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=49928, - serialized_end=50320, + serialized_start=51454, + serialized_end=51846, ) @@ -13233,8 +13714,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=50752, - serialized_end=50805, + serialized_start=52278, + serialized_end=52331, ) _GETGROUPACTIONSIGNERSRESPONSE_GETGROUPACTIONSIGNERSRESPONSEV0_GROUPACTIONSIGNERS = _descriptor.Descriptor( @@ -13264,8 +13745,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=50808, - serialized_end=50953, + serialized_start=52334, + serialized_end=52479, ) _GETGROUPACTIONSIGNERSRESPONSE_GETGROUPACTIONSIGNERSRESPONSEV0 = _descriptor.Descriptor( @@ -13314,8 +13795,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=50461, - serialized_end=50963, + serialized_start=51987, + serialized_end=52489, ) _GETGROUPACTIONSIGNERSRESPONSE = _descriptor.Descriptor( @@ -13350,10 +13831,58 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=50323, - serialized_end=50974, -) - + serialized_start=51849, + serialized_end=52500, +) + +_PLATFORMSUBSCRIPTIONREQUEST_PLATFORMSUBSCRIPTIONREQUESTV0.fields_by_name['filter'].message_type = _PLATFORMFILTERV0 +_PLATFORMSUBSCRIPTIONREQUEST_PLATFORMSUBSCRIPTIONREQUESTV0.containing_type = _PLATFORMSUBSCRIPTIONREQUEST +_PLATFORMSUBSCRIPTIONREQUEST.fields_by_name['v0'].message_type = _PLATFORMSUBSCRIPTIONREQUEST_PLATFORMSUBSCRIPTIONREQUESTV0 +_PLATFORMSUBSCRIPTIONREQUEST.oneofs_by_name['version'].fields.append( + _PLATFORMSUBSCRIPTIONREQUEST.fields_by_name['v0']) +_PLATFORMSUBSCRIPTIONREQUEST.fields_by_name['v0'].containing_oneof = _PLATFORMSUBSCRIPTIONREQUEST.oneofs_by_name['version'] +_PLATFORMSUBSCRIPTIONRESPONSE_PLATFORMSUBSCRIPTIONRESPONSEV0.fields_by_name['event'].message_type = _PLATFORMEVENTV0 +_PLATFORMSUBSCRIPTIONRESPONSE_PLATFORMSUBSCRIPTIONRESPONSEV0.containing_type = _PLATFORMSUBSCRIPTIONRESPONSE +_PLATFORMSUBSCRIPTIONRESPONSE.fields_by_name['v0'].message_type = _PLATFORMSUBSCRIPTIONRESPONSE_PLATFORMSUBSCRIPTIONRESPONSEV0 +_PLATFORMSUBSCRIPTIONRESPONSE.oneofs_by_name['version'].fields.append( + _PLATFORMSUBSCRIPTIONRESPONSE.fields_by_name['v0']) +_PLATFORMSUBSCRIPTIONRESPONSE.fields_by_name['v0'].containing_oneof = _PLATFORMSUBSCRIPTIONRESPONSE.oneofs_by_name['version'] +_PLATFORMFILTERV0_ALLEVENTS.containing_type = _PLATFORMFILTERV0 +_PLATFORMFILTERV0_BLOCKCOMMITTED.containing_type = _PLATFORMFILTERV0 +_PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER.containing_type = _PLATFORMFILTERV0 +_PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER.oneofs_by_name['_tx_hash'].fields.append( + _PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER.fields_by_name['tx_hash']) +_PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER.fields_by_name['tx_hash'].containing_oneof = _PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER.oneofs_by_name['_tx_hash'] +_PLATFORMFILTERV0.fields_by_name['all'].message_type = _PLATFORMFILTERV0_ALLEVENTS +_PLATFORMFILTERV0.fields_by_name['block_committed'].message_type = _PLATFORMFILTERV0_BLOCKCOMMITTED +_PLATFORMFILTERV0.fields_by_name['state_transition_result'].message_type = _PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER +_PLATFORMFILTERV0.oneofs_by_name['kind'].fields.append( + _PLATFORMFILTERV0.fields_by_name['all']) +_PLATFORMFILTERV0.fields_by_name['all'].containing_oneof = _PLATFORMFILTERV0.oneofs_by_name['kind'] +_PLATFORMFILTERV0.oneofs_by_name['kind'].fields.append( + _PLATFORMFILTERV0.fields_by_name['block_committed']) +_PLATFORMFILTERV0.fields_by_name['block_committed'].containing_oneof = _PLATFORMFILTERV0.oneofs_by_name['kind'] +_PLATFORMFILTERV0.oneofs_by_name['kind'].fields.append( + _PLATFORMFILTERV0.fields_by_name['state_transition_result']) +_PLATFORMFILTERV0.fields_by_name['state_transition_result'].containing_oneof = _PLATFORMFILTERV0.oneofs_by_name['kind'] +_PLATFORMEVENTV0_BLOCKMETADATA.containing_type = _PLATFORMEVENTV0 +_PLATFORMEVENTV0_BLOCKCOMMITTED.fields_by_name['meta'].message_type = _PLATFORMEVENTV0_BLOCKMETADATA +_PLATFORMEVENTV0_BLOCKCOMMITTED.containing_type = _PLATFORMEVENTV0 +_PLATFORMEVENTV0_STATETRANSITIONFINALIZED.fields_by_name['meta'].message_type = _PLATFORMEVENTV0_BLOCKMETADATA +_PLATFORMEVENTV0_STATETRANSITIONFINALIZED.containing_type = _PLATFORMEVENTV0 +_PLATFORMEVENTV0_KEEPALIVE.containing_type = _PLATFORMEVENTV0 +_PLATFORMEVENTV0.fields_by_name['block_committed'].message_type = _PLATFORMEVENTV0_BLOCKCOMMITTED +_PLATFORMEVENTV0.fields_by_name['state_transition_finalized'].message_type = _PLATFORMEVENTV0_STATETRANSITIONFINALIZED +_PLATFORMEVENTV0.fields_by_name['keepalive'].message_type = _PLATFORMEVENTV0_KEEPALIVE +_PLATFORMEVENTV0.oneofs_by_name['event'].fields.append( + _PLATFORMEVENTV0.fields_by_name['block_committed']) +_PLATFORMEVENTV0.fields_by_name['block_committed'].containing_oneof = _PLATFORMEVENTV0.oneofs_by_name['event'] +_PLATFORMEVENTV0.oneofs_by_name['event'].fields.append( + _PLATFORMEVENTV0.fields_by_name['state_transition_finalized']) +_PLATFORMEVENTV0.fields_by_name['state_transition_finalized'].containing_oneof = _PLATFORMEVENTV0.oneofs_by_name['event'] +_PLATFORMEVENTV0.oneofs_by_name['event'].fields.append( + _PLATFORMEVENTV0.fields_by_name['keepalive']) +_PLATFORMEVENTV0.fields_by_name['keepalive'].containing_oneof = _PLATFORMEVENTV0.oneofs_by_name['event'] _GETIDENTITYREQUEST_GETIDENTITYREQUESTV0.containing_type = _GETIDENTITYREQUEST _GETIDENTITYREQUEST.fields_by_name['v0'].message_type = _GETIDENTITYREQUEST_GETIDENTITYREQUESTV0 _GETIDENTITYREQUEST.oneofs_by_name['version'].fields.append( @@ -14650,6 +15179,10 @@ _GETGROUPACTIONSIGNERSRESPONSE.oneofs_by_name['version'].fields.append( _GETGROUPACTIONSIGNERSRESPONSE.fields_by_name['v0']) _GETGROUPACTIONSIGNERSRESPONSE.fields_by_name['v0'].containing_oneof = _GETGROUPACTIONSIGNERSRESPONSE.oneofs_by_name['version'] +DESCRIPTOR.message_types_by_name['PlatformSubscriptionRequest'] = _PLATFORMSUBSCRIPTIONREQUEST +DESCRIPTOR.message_types_by_name['PlatformSubscriptionResponse'] = _PLATFORMSUBSCRIPTIONRESPONSE +DESCRIPTOR.message_types_by_name['PlatformFilterV0'] = _PLATFORMFILTERV0 +DESCRIPTOR.message_types_by_name['PlatformEventV0'] = _PLATFORMEVENTV0 DESCRIPTOR.message_types_by_name['Proof'] = _PROOF DESCRIPTOR.message_types_by_name['ResponseMetadata'] = _RESPONSEMETADATA DESCRIPTOR.message_types_by_name['StateTransitionBroadcastError'] = _STATETRANSITIONBROADCASTERROR @@ -14754,6 +15287,106 @@ DESCRIPTOR.enum_types_by_name['KeyPurpose'] = _KEYPURPOSE _sym_db.RegisterFileDescriptor(DESCRIPTOR) +PlatformSubscriptionRequest = _reflection.GeneratedProtocolMessageType('PlatformSubscriptionRequest', (_message.Message,), { + + 'PlatformSubscriptionRequestV0' : _reflection.GeneratedProtocolMessageType('PlatformSubscriptionRequestV0', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMSUBSCRIPTIONREQUEST_PLATFORMSUBSCRIPTIONREQUESTV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0) + }) + , + 'DESCRIPTOR' : _PLATFORMSUBSCRIPTIONREQUEST, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformSubscriptionRequest) + }) +_sym_db.RegisterMessage(PlatformSubscriptionRequest) +_sym_db.RegisterMessage(PlatformSubscriptionRequest.PlatformSubscriptionRequestV0) + +PlatformSubscriptionResponse = _reflection.GeneratedProtocolMessageType('PlatformSubscriptionResponse', (_message.Message,), { + + 'PlatformSubscriptionResponseV0' : _reflection.GeneratedProtocolMessageType('PlatformSubscriptionResponseV0', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMSUBSCRIPTIONRESPONSE_PLATFORMSUBSCRIPTIONRESPONSEV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0) + }) + , + 'DESCRIPTOR' : _PLATFORMSUBSCRIPTIONRESPONSE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformSubscriptionResponse) + }) +_sym_db.RegisterMessage(PlatformSubscriptionResponse) +_sym_db.RegisterMessage(PlatformSubscriptionResponse.PlatformSubscriptionResponseV0) + +PlatformFilterV0 = _reflection.GeneratedProtocolMessageType('PlatformFilterV0', (_message.Message,), { + + 'AllEvents' : _reflection.GeneratedProtocolMessageType('AllEvents', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMFILTERV0_ALLEVENTS, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents) + }) + , + + 'BlockCommitted' : _reflection.GeneratedProtocolMessageType('BlockCommitted', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMFILTERV0_BLOCKCOMMITTED, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted) + }) + , + + 'StateTransitionResultFilter' : _reflection.GeneratedProtocolMessageType('StateTransitionResultFilter', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMFILTERV0_STATETRANSITIONRESULTFILTER, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter) + }) + , + 'DESCRIPTOR' : _PLATFORMFILTERV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformFilterV0) + }) +_sym_db.RegisterMessage(PlatformFilterV0) +_sym_db.RegisterMessage(PlatformFilterV0.AllEvents) +_sym_db.RegisterMessage(PlatformFilterV0.BlockCommitted) +_sym_db.RegisterMessage(PlatformFilterV0.StateTransitionResultFilter) + +PlatformEventV0 = _reflection.GeneratedProtocolMessageType('PlatformEventV0', (_message.Message,), { + + 'BlockMetadata' : _reflection.GeneratedProtocolMessageType('BlockMetadata', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMEVENTV0_BLOCKMETADATA, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata) + }) + , + + 'BlockCommitted' : _reflection.GeneratedProtocolMessageType('BlockCommitted', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMEVENTV0_BLOCKCOMMITTED, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted) + }) + , + + 'StateTransitionFinalized' : _reflection.GeneratedProtocolMessageType('StateTransitionFinalized', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMEVENTV0_STATETRANSITIONFINALIZED, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized) + }) + , + + 'Keepalive' : _reflection.GeneratedProtocolMessageType('Keepalive', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMEVENTV0_KEEPALIVE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformEventV0.Keepalive) + }) + , + 'DESCRIPTOR' : _PLATFORMEVENTV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.PlatformEventV0) + }) +_sym_db.RegisterMessage(PlatformEventV0) +_sym_db.RegisterMessage(PlatformEventV0.BlockMetadata) +_sym_db.RegisterMessage(PlatformEventV0.BlockCommitted) +_sym_db.RegisterMessage(PlatformEventV0.StateTransitionFinalized) +_sym_db.RegisterMessage(PlatformEventV0.Keepalive) + Proof = _reflection.GeneratedProtocolMessageType('Proof', (_message.Message,), { 'DESCRIPTOR' : _PROOF, '__module__' : 'platform_pb2' @@ -17086,6 +17719,8 @@ _sym_db.RegisterMessage(GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSigners) +_PLATFORMEVENTV0_BLOCKMETADATA.fields_by_name['height']._options = None +_PLATFORMEVENTV0_BLOCKMETADATA.fields_by_name['time_ms']._options = None _RESPONSEMETADATA.fields_by_name['height']._options = None _RESPONSEMETADATA.fields_by_name['time_ms']._options = None _GETIDENTITYNONCERESPONSE_GETIDENTITYNONCERESPONSEV0.fields_by_name['identity_nonce']._options = None @@ -17138,8 +17773,8 @@ index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=51069, - serialized_end=57954, + serialized_start=52595, + serialized_end=59623, methods=[ _descriptor.MethodDescriptor( name='broadcastStateTransition', @@ -17611,6 +18246,16 @@ serialized_options=None, create_key=_descriptor._internal_create_key, ), + _descriptor.MethodDescriptor( + name='subscribePlatformEvents', + full_name='org.dash.platform.dapi.v0.Platform.subscribePlatformEvents', + index=47, + containing_service=None, + input_type=_PLATFORMSUBSCRIPTIONREQUEST, + output_type=_PLATFORMSUBSCRIPTIONRESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), ]) _sym_db.RegisterServiceDescriptor(_PLATFORM) diff --git a/packages/dapi-grpc/clients/platform/v0/python/platform_pb2_grpc.py b/packages/dapi-grpc/clients/platform/v0/python/platform_pb2_grpc.py index 9460c244724..d1c8570058a 100644 --- a/packages/dapi-grpc/clients/platform/v0/python/platform_pb2_grpc.py +++ b/packages/dapi-grpc/clients/platform/v0/python/platform_pb2_grpc.py @@ -249,6 +249,11 @@ def __init__(self, channel): request_serializer=platform__pb2.GetGroupActionSignersRequest.SerializeToString, response_deserializer=platform__pb2.GetGroupActionSignersResponse.FromString, ) + self.subscribePlatformEvents = channel.unary_stream( + '/org.dash.platform.dapi.v0.Platform/subscribePlatformEvents', + request_serializer=platform__pb2.PlatformSubscriptionRequest.SerializeToString, + response_deserializer=platform__pb2.PlatformSubscriptionResponse.FromString, + ) class PlatformServicer(object): @@ -541,6 +546,17 @@ def getGroupActionSigners(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def subscribePlatformEvents(self, request, context): + """Server-streaming subscription for platform events. + + Allows subscribing to various Platform events. + + Once connected, it sends handshake response with empty event. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_PlatformServicer_to_server(servicer, server): rpc_method_handlers = { @@ -779,6 +795,11 @@ def add_PlatformServicer_to_server(servicer, server): request_deserializer=platform__pb2.GetGroupActionSignersRequest.FromString, response_serializer=platform__pb2.GetGroupActionSignersResponse.SerializeToString, ), + 'subscribePlatformEvents': grpc.unary_stream_rpc_method_handler( + servicer.subscribePlatformEvents, + request_deserializer=platform__pb2.PlatformSubscriptionRequest.FromString, + response_serializer=platform__pb2.PlatformSubscriptionResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'org.dash.platform.dapi.v0.Platform', rpc_method_handlers) @@ -1587,3 +1608,20 @@ def getGroupActionSigners(request, platform__pb2.GetGroupActionSignersResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def subscribePlatformEvents(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/org.dash.platform.dapi.v0.Platform/subscribePlatformEvents', + platform__pb2.PlatformSubscriptionRequest.SerializeToString, + platform__pb2.PlatformSubscriptionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/packages/dapi-grpc/clients/platform/v0/web/platform_pb.d.ts b/packages/dapi-grpc/clients/platform/v0/web/platform_pb.d.ts index 7b7f7ef774e..140d21b8c8e 100644 --- a/packages/dapi-grpc/clients/platform/v0/web/platform_pb.d.ts +++ b/packages/dapi-grpc/clients/platform/v0/web/platform_pb.d.ts @@ -6,6 +6,354 @@ import * as google_protobuf_wrappers_pb from "google-protobuf/google/protobuf/wr import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; import * as google_protobuf_timestamp_pb from "google-protobuf/google/protobuf/timestamp_pb"; +export class PlatformSubscriptionRequest extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 | undefined; + setV0(value?: PlatformSubscriptionRequest.PlatformSubscriptionRequestV0): void; + + getVersionCase(): PlatformSubscriptionRequest.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): PlatformSubscriptionRequest.AsObject; + static toObject(includeInstance: boolean, msg: PlatformSubscriptionRequest): PlatformSubscriptionRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: PlatformSubscriptionRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): PlatformSubscriptionRequest; + static deserializeBinaryFromReader(message: PlatformSubscriptionRequest, reader: jspb.BinaryReader): PlatformSubscriptionRequest; +} + +export namespace PlatformSubscriptionRequest { + export type AsObject = { + v0?: PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.AsObject, + } + + export class PlatformSubscriptionRequestV0 extends jspb.Message { + hasFilter(): boolean; + clearFilter(): void; + getFilter(): PlatformFilterV0 | undefined; + setFilter(value?: PlatformFilterV0): void; + + getKeepalive(): number; + setKeepalive(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): PlatformSubscriptionRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: PlatformSubscriptionRequestV0): PlatformSubscriptionRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: PlatformSubscriptionRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): PlatformSubscriptionRequestV0; + static deserializeBinaryFromReader(message: PlatformSubscriptionRequestV0, reader: jspb.BinaryReader): PlatformSubscriptionRequestV0; + } + + export namespace PlatformSubscriptionRequestV0 { + export type AsObject = { + filter?: PlatformFilterV0.AsObject, + keepalive: number, + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class PlatformSubscriptionResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 | undefined; + setV0(value?: PlatformSubscriptionResponse.PlatformSubscriptionResponseV0): void; + + getVersionCase(): PlatformSubscriptionResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): PlatformSubscriptionResponse.AsObject; + static toObject(includeInstance: boolean, msg: PlatformSubscriptionResponse): PlatformSubscriptionResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: PlatformSubscriptionResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): PlatformSubscriptionResponse; + static deserializeBinaryFromReader(message: PlatformSubscriptionResponse, reader: jspb.BinaryReader): PlatformSubscriptionResponse; +} + +export namespace PlatformSubscriptionResponse { + export type AsObject = { + v0?: PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.AsObject, + } + + export class PlatformSubscriptionResponseV0 extends jspb.Message { + getSubscriptionId(): number; + setSubscriptionId(value: number): void; + + hasEvent(): boolean; + clearEvent(): void; + getEvent(): PlatformEventV0 | undefined; + setEvent(value?: PlatformEventV0): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): PlatformSubscriptionResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: PlatformSubscriptionResponseV0): PlatformSubscriptionResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: PlatformSubscriptionResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): PlatformSubscriptionResponseV0; + static deserializeBinaryFromReader(message: PlatformSubscriptionResponseV0, reader: jspb.BinaryReader): PlatformSubscriptionResponseV0; + } + + export namespace PlatformSubscriptionResponseV0 { + export type AsObject = { + subscriptionId: number, + event?: PlatformEventV0.AsObject, + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class PlatformFilterV0 extends jspb.Message { + hasAll(): boolean; + clearAll(): void; + getAll(): PlatformFilterV0.AllEvents | undefined; + setAll(value?: PlatformFilterV0.AllEvents): void; + + hasBlockCommitted(): boolean; + clearBlockCommitted(): void; + getBlockCommitted(): PlatformFilterV0.BlockCommitted | undefined; + setBlockCommitted(value?: PlatformFilterV0.BlockCommitted): void; + + hasStateTransitionResult(): boolean; + clearStateTransitionResult(): void; + getStateTransitionResult(): PlatformFilterV0.StateTransitionResultFilter | undefined; + setStateTransitionResult(value?: PlatformFilterV0.StateTransitionResultFilter): void; + + getKindCase(): PlatformFilterV0.KindCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): PlatformFilterV0.AsObject; + static toObject(includeInstance: boolean, msg: PlatformFilterV0): PlatformFilterV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: PlatformFilterV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): PlatformFilterV0; + static deserializeBinaryFromReader(message: PlatformFilterV0, reader: jspb.BinaryReader): PlatformFilterV0; +} + +export namespace PlatformFilterV0 { + export type AsObject = { + all?: PlatformFilterV0.AllEvents.AsObject, + blockCommitted?: PlatformFilterV0.BlockCommitted.AsObject, + stateTransitionResult?: PlatformFilterV0.StateTransitionResultFilter.AsObject, + } + + export class AllEvents extends jspb.Message { + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): AllEvents.AsObject; + static toObject(includeInstance: boolean, msg: AllEvents): AllEvents.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: AllEvents, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): AllEvents; + static deserializeBinaryFromReader(message: AllEvents, reader: jspb.BinaryReader): AllEvents; + } + + export namespace AllEvents { + export type AsObject = { + } + } + + export class BlockCommitted extends jspb.Message { + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): BlockCommitted.AsObject; + static toObject(includeInstance: boolean, msg: BlockCommitted): BlockCommitted.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: BlockCommitted, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): BlockCommitted; + static deserializeBinaryFromReader(message: BlockCommitted, reader: jspb.BinaryReader): BlockCommitted; + } + + export namespace BlockCommitted { + export type AsObject = { + } + } + + export class StateTransitionResultFilter extends jspb.Message { + hasTxHash(): boolean; + clearTxHash(): void; + getTxHash(): Uint8Array | string; + getTxHash_asU8(): Uint8Array; + getTxHash_asB64(): string; + setTxHash(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StateTransitionResultFilter.AsObject; + static toObject(includeInstance: boolean, msg: StateTransitionResultFilter): StateTransitionResultFilter.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StateTransitionResultFilter, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StateTransitionResultFilter; + static deserializeBinaryFromReader(message: StateTransitionResultFilter, reader: jspb.BinaryReader): StateTransitionResultFilter; + } + + export namespace StateTransitionResultFilter { + export type AsObject = { + txHash: Uint8Array | string, + } + } + + export enum KindCase { + KIND_NOT_SET = 0, + ALL = 1, + BLOCK_COMMITTED = 2, + STATE_TRANSITION_RESULT = 3, + } +} + +export class PlatformEventV0 extends jspb.Message { + hasBlockCommitted(): boolean; + clearBlockCommitted(): void; + getBlockCommitted(): PlatformEventV0.BlockCommitted | undefined; + setBlockCommitted(value?: PlatformEventV0.BlockCommitted): void; + + hasStateTransitionFinalized(): boolean; + clearStateTransitionFinalized(): void; + getStateTransitionFinalized(): PlatformEventV0.StateTransitionFinalized | undefined; + setStateTransitionFinalized(value?: PlatformEventV0.StateTransitionFinalized): void; + + hasKeepalive(): boolean; + clearKeepalive(): void; + getKeepalive(): PlatformEventV0.Keepalive | undefined; + setKeepalive(value?: PlatformEventV0.Keepalive): void; + + getEventCase(): PlatformEventV0.EventCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): PlatformEventV0.AsObject; + static toObject(includeInstance: boolean, msg: PlatformEventV0): PlatformEventV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: PlatformEventV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): PlatformEventV0; + static deserializeBinaryFromReader(message: PlatformEventV0, reader: jspb.BinaryReader): PlatformEventV0; +} + +export namespace PlatformEventV0 { + export type AsObject = { + blockCommitted?: PlatformEventV0.BlockCommitted.AsObject, + stateTransitionFinalized?: PlatformEventV0.StateTransitionFinalized.AsObject, + keepalive?: PlatformEventV0.Keepalive.AsObject, + } + + export class BlockMetadata extends jspb.Message { + getHeight(): string; + setHeight(value: string): void; + + getTimeMs(): string; + setTimeMs(value: string): void; + + getBlockIdHash(): Uint8Array | string; + getBlockIdHash_asU8(): Uint8Array; + getBlockIdHash_asB64(): string; + setBlockIdHash(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): BlockMetadata.AsObject; + static toObject(includeInstance: boolean, msg: BlockMetadata): BlockMetadata.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: BlockMetadata, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): BlockMetadata; + static deserializeBinaryFromReader(message: BlockMetadata, reader: jspb.BinaryReader): BlockMetadata; + } + + export namespace BlockMetadata { + export type AsObject = { + height: string, + timeMs: string, + blockIdHash: Uint8Array | string, + } + } + + export class BlockCommitted extends jspb.Message { + hasMeta(): boolean; + clearMeta(): void; + getMeta(): PlatformEventV0.BlockMetadata | undefined; + setMeta(value?: PlatformEventV0.BlockMetadata): void; + + getTxCount(): number; + setTxCount(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): BlockCommitted.AsObject; + static toObject(includeInstance: boolean, msg: BlockCommitted): BlockCommitted.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: BlockCommitted, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): BlockCommitted; + static deserializeBinaryFromReader(message: BlockCommitted, reader: jspb.BinaryReader): BlockCommitted; + } + + export namespace BlockCommitted { + export type AsObject = { + meta?: PlatformEventV0.BlockMetadata.AsObject, + txCount: number, + } + } + + export class StateTransitionFinalized extends jspb.Message { + hasMeta(): boolean; + clearMeta(): void; + getMeta(): PlatformEventV0.BlockMetadata | undefined; + setMeta(value?: PlatformEventV0.BlockMetadata): void; + + getTxHash(): Uint8Array | string; + getTxHash_asU8(): Uint8Array; + getTxHash_asB64(): string; + setTxHash(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StateTransitionFinalized.AsObject; + static toObject(includeInstance: boolean, msg: StateTransitionFinalized): StateTransitionFinalized.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StateTransitionFinalized, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StateTransitionFinalized; + static deserializeBinaryFromReader(message: StateTransitionFinalized, reader: jspb.BinaryReader): StateTransitionFinalized; + } + + export namespace StateTransitionFinalized { + export type AsObject = { + meta?: PlatformEventV0.BlockMetadata.AsObject, + txHash: Uint8Array | string, + } + } + + export class Keepalive extends jspb.Message { + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Keepalive.AsObject; + static toObject(includeInstance: boolean, msg: Keepalive): Keepalive.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Keepalive, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Keepalive; + static deserializeBinaryFromReader(message: Keepalive, reader: jspb.BinaryReader): Keepalive; + } + + export namespace Keepalive { + export type AsObject = { + } + } + + export enum EventCase { + EVENT_NOT_SET = 0, + BLOCK_COMMITTED = 1, + STATE_TRANSITION_FINALIZED = 2, + KEEPALIVE = 3, + } +} + export class Proof extends jspb.Message { getGrovedbProof(): Uint8Array | string; getGrovedbProof_asU8(): Uint8Array; diff --git a/packages/dapi-grpc/clients/platform/v0/web/platform_pb.js b/packages/dapi-grpc/clients/platform/v0/web/platform_pb.js index dad5a352c41..7db02826598 100644 --- a/packages/dapi-grpc/clients/platform/v0/web/platform_pb.js +++ b/packages/dapi-grpc/clients/platform/v0/web/platform_pb.js @@ -460,6 +460,23 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse goog.exportSymbol('proto.org.dash.platform.dapi.v0.KeyPurpose', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.KeyRequestType', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.KeyRequestType.RequestCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.EventCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0.KindCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.Proof', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.ResponseMetadata', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.SearchKey', null, { proto }); @@ -474,6 +491,279 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultR goog.exportSymbol('proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase', null, { proto }); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.displayName = 'proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.displayName = 'proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformFilterV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformFilterV0.displayName = 'proto.org.dash.platform.dapi.v0.PlatformFilterV0'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.displayName = 'proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.displayName = 'proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.displayName = 'proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.displayName = 'proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -6817,6 +7107,2355 @@ if (goog.DEBUG && !COMPILED) { proto.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSigners.displayName = 'proto.org.dash.platform.dapi.v0.GetGroupActionSignersResponse.GetGroupActionSignersResponseV0.GroupActionSigners'; } +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest; + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + filter: (f = msg.getFilter()) && proto.org.dash.platform.dapi.v0.PlatformFilterV0.toObject(includeInstance, f), + keepalive: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0; + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformFilterV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformFilterV0.deserializeBinaryFromReader); + msg.setFilter(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setKeepalive(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getFilter(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformFilterV0.serializeBinaryToWriter + ); + } + f = message.getKeepalive(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } +}; + + +/** + * optional PlatformFilterV0 filter = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformFilterV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.getFilter = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformFilterV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformFilterV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.setFilter = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.clearFilter = function() { + return this.setFilter(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.hasFilter = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional uint32 keepalive = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.getKeepalive = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0.prototype.setKeepalive = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional PlatformSubscriptionRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.PlatformSubscriptionRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse; + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + subscriptionId: jspb.Message.getFieldWithDefault(msg, 1, 0), + event: (f = msg.getEvent()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0; + return proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSubscriptionId(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.deserializeBinaryFromReader); + msg.setEvent(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getSubscriptionId(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getEvent(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 subscription_id = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.getSubscriptionId = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.setSubscriptionId = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional PlatformEventV0 event = 2; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.getEvent = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.setEvent = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.clearEvent = function() { + return this.setEvent(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0.prototype.hasEvent = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional PlatformSubscriptionResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.PlatformSubscriptionResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformSubscriptionResponse.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_ = [[1,2,3]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.KindCase = { + KIND_NOT_SET: 0, + ALL: 1, + BLOCK_COMMITTED: 2, + STATE_TRANSITION_RESULT: 3 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.PlatformFilterV0.KindCase} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.getKindCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.PlatformFilterV0.KindCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.toObject = function(includeInstance, msg) { + var f, obj = { + all: (f = msg.getAll()) && proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.toObject(includeInstance, f), + blockCommitted: (f = msg.getBlockCommitted()) && proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.toObject(includeInstance, f), + stateTransitionResult: (f = msg.getStateTransitionResult()) && proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformFilterV0; + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.deserializeBinaryFromReader); + msg.setAll(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.deserializeBinaryFromReader); + msg.setBlockCommitted(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.deserializeBinaryFromReader); + msg.setStateTransitionResult(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformFilterV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAll(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.serializeBinaryToWriter + ); + } + f = message.getBlockCommitted(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.serializeBinaryToWriter + ); + } + f = message.getStateTransitionResult(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents; + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted; + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.toObject = function(includeInstance, msg) { + var f, obj = { + txHash: msg.getTxHash_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter; + return proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setTxHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeBytes( + 1, + f + ); + } +}; + + +/** + * optional bytes tx_hash = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.getTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes tx_hash = 1; + * This is a type-conversion wrapper around `getTxHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.getTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getTxHash())); +}; + + +/** + * optional bytes tx_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getTxHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.getTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getTxHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.setTxHash = function(value) { + return jspb.Message.setField(this, 1, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.clearTxHash = function() { + return jspb.Message.setField(this, 1, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter.prototype.hasTxHash = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional AllEvents all = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.getAll = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.AllEvents|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.setAll = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.clearAll = function() { + return this.setAll(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.hasAll = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional BlockCommitted block_committed = 2; + * @return {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.getBlockCommitted = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.BlockCommitted|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.setBlockCommitted = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.clearBlockCommitted = function() { + return this.setBlockCommitted(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.hasBlockCommitted = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional StateTransitionResultFilter state_transition_result = 3; + * @return {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.getStateTransitionResult = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformFilterV0.StateTransitionResultFilter|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.setStateTransitionResult = function(value) { + return jspb.Message.setOneofWrapperField(this, 3, proto.org.dash.platform.dapi.v0.PlatformFilterV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformFilterV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.clearStateTransitionResult = function() { + return this.setStateTransitionResult(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformFilterV0.prototype.hasStateTransitionResult = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_ = [[1,2,3]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.EventCase = { + EVENT_NOT_SET: 0, + BLOCK_COMMITTED: 1, + STATE_TRANSITION_FINALIZED: 2, + KEEPALIVE: 3 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.PlatformEventV0.EventCase} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.getEventCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.PlatformEventV0.EventCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.toObject = function(includeInstance, msg) { + var f, obj = { + blockCommitted: (f = msg.getBlockCommitted()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.toObject(includeInstance, f), + stateTransitionFinalized: (f = msg.getStateTransitionFinalized()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.toObject(includeInstance, f), + keepalive: (f = msg.getKeepalive()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.deserializeBinaryFromReader); + msg.setBlockCommitted(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.deserializeBinaryFromReader); + msg.setStateTransitionFinalized(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.deserializeBinaryFromReader); + msg.setKeepalive(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getBlockCommitted(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.serializeBinaryToWriter + ); + } + f = message.getStateTransitionFinalized(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.serializeBinaryToWriter + ); + } + f = message.getKeepalive(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject = function(includeInstance, msg) { + var f, obj = { + height: jspb.Message.getFieldWithDefault(msg, 1, "0"), + timeMs: jspb.Message.getFieldWithDefault(msg, 2, "0"), + blockIdHash: msg.getBlockIdHash_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readUint64String()); + msg.setHeight(value); + break; + case 2: + var value = /** @type {string} */ (reader.readUint64String()); + msg.setTimeMs(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setBlockIdHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getHeight(); + if (parseInt(f, 10) !== 0) { + writer.writeUint64String( + 1, + f + ); + } + f = message.getTimeMs(); + if (parseInt(f, 10) !== 0) { + writer.writeUint64String( + 2, + f + ); + } + f = message.getBlockIdHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 3, + f + ); + } +}; + + +/** + * optional uint64 height = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getHeight = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.setHeight = function(value) { + return jspb.Message.setProto3StringIntField(this, 1, value); +}; + + +/** + * optional uint64 time_ms = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getTimeMs = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.setTimeMs = function(value) { + return jspb.Message.setProto3StringIntField(this, 2, value); +}; + + +/** + * optional bytes block_id_hash = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getBlockIdHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * optional bytes block_id_hash = 3; + * This is a type-conversion wrapper around `getBlockIdHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getBlockIdHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getBlockIdHash())); +}; + + +/** + * optional bytes block_id_hash = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getBlockIdHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.getBlockIdHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getBlockIdHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.prototype.setBlockIdHash = function(value) { + return jspb.Message.setProto3BytesField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.toObject = function(includeInstance, msg) { + var f, obj = { + meta: (f = msg.getMeta()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(includeInstance, f), + txCount: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinaryFromReader); + msg.setMeta(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setTxCount(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getMeta(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.serializeBinaryToWriter + ); + } + f = message.getTxCount(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } +}; + + +/** + * optional BlockMetadata meta = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.getMeta = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.setMeta = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.clearMeta = function() { + return this.setMeta(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.hasMeta = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional uint32 tx_count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.getTxCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted.prototype.setTxCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.toObject = function(includeInstance, msg) { + var f, obj = { + meta: (f = msg.getMeta()) && proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.toObject(includeInstance, f), + txHash: msg.getTxHash_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.deserializeBinaryFromReader); + msg.setMeta(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setTxHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getMeta(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata.serializeBinaryToWriter + ); + } + f = message.getTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } +}; + + +/** + * optional BlockMetadata meta = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.getMeta = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.setMeta = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.clearMeta = function() { + return this.setMeta(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.hasMeta = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional bytes tx_hash = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.getTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes tx_hash = 2; + * This is a type-conversion wrapper around `getTxHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.getTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getTxHash())); +}; + + +/** + * optional bytes tx_hash = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getTxHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.getTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getTxHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized.prototype.setTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive; + return proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + +/** + * optional BlockCommitted block_committed = 1; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.getBlockCommitted = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.BlockCommitted|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.setBlockCommitted = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.clearBlockCommitted = function() { + return this.setBlockCommitted(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.hasBlockCommitted = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional StateTransitionFinalized state_transition_finalized = 2; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.getStateTransitionFinalized = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.StateTransitionFinalized|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.setStateTransitionFinalized = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.clearStateTransitionFinalized = function() { + return this.setStateTransitionFinalized(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.hasStateTransitionFinalized = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional Keepalive keepalive = 3; + * @return {?proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.getKeepalive = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.PlatformEventV0.Keepalive|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this +*/ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.setKeepalive = function(value) { + return jspb.Message.setOneofWrapperField(this, 3, proto.org.dash.platform.dapi.v0.PlatformEventV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.PlatformEventV0} returns this + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.clearKeepalive = function() { + return this.setKeepalive(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.PlatformEventV0.prototype.hasKeepalive = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + if (jspb.Message.GENERATE_TO_OBJECT) { diff --git a/packages/dapi-grpc/clients/platform/v0/web/platform_pb_service.d.ts b/packages/dapi-grpc/clients/platform/v0/web/platform_pb_service.d.ts index a2368519018..b12ee7a9b63 100644 --- a/packages/dapi-grpc/clients/platform/v0/web/platform_pb_service.d.ts +++ b/packages/dapi-grpc/clients/platform/v0/web/platform_pb_service.d.ts @@ -427,6 +427,15 @@ type PlatformgetGroupActionSigners = { readonly responseType: typeof platform_pb.GetGroupActionSignersResponse; }; +type PlatformsubscribePlatformEvents = { + readonly methodName: string; + readonly service: typeof Platform; + readonly requestStream: false; + readonly responseStream: true; + readonly requestType: typeof platform_pb.PlatformSubscriptionRequest; + readonly responseType: typeof platform_pb.PlatformSubscriptionResponse; +}; + export class Platform { static readonly serviceName: string; static readonly broadcastStateTransition: PlatformbroadcastStateTransition; @@ -476,6 +485,7 @@ export class Platform { static readonly getGroupInfos: PlatformgetGroupInfos; static readonly getGroupActions: PlatformgetGroupActions; static readonly getGroupActionSigners: PlatformgetGroupActionSigners; + static readonly subscribePlatformEvents: PlatformsubscribePlatformEvents; } export type ServiceError = { message: string, code: number; metadata: grpc.Metadata } @@ -933,5 +943,6 @@ export class PlatformClient { requestMessage: platform_pb.GetGroupActionSignersRequest, callback: (error: ServiceError|null, responseMessage: platform_pb.GetGroupActionSignersResponse|null) => void ): UnaryResponse; + subscribePlatformEvents(requestMessage: platform_pb.PlatformSubscriptionRequest, metadata?: grpc.Metadata): ResponseStream; } diff --git a/packages/dapi-grpc/clients/platform/v0/web/platform_pb_service.js b/packages/dapi-grpc/clients/platform/v0/web/platform_pb_service.js index 53ee1b9da31..4a5e56e59a3 100644 --- a/packages/dapi-grpc/clients/platform/v0/web/platform_pb_service.js +++ b/packages/dapi-grpc/clients/platform/v0/web/platform_pb_service.js @@ -433,6 +433,15 @@ Platform.getGroupActionSigners = { responseType: platform_pb.GetGroupActionSignersResponse }; +Platform.subscribePlatformEvents = { + methodName: "subscribePlatformEvents", + service: Platform, + requestStream: false, + responseStream: true, + requestType: platform_pb.PlatformSubscriptionRequest, + responseType: platform_pb.PlatformSubscriptionResponse +}; + exports.Platform = Platform; function PlatformClient(serviceHost, options) { @@ -1897,5 +1906,44 @@ PlatformClient.prototype.getGroupActionSigners = function getGroupActionSigners( }; }; +PlatformClient.prototype.subscribePlatformEvents = function subscribePlatformEvents(requestMessage, metadata) { + var listeners = { + data: [], + end: [], + status: [] + }; + var client = grpc.invoke(Platform.subscribePlatformEvents, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onMessage: function (responseMessage) { + listeners.data.forEach(function (handler) { + handler(responseMessage); + }); + }, + onEnd: function (status, statusMessage, trailers) { + listeners.status.forEach(function (handler) { + handler({ code: status, details: statusMessage, metadata: trailers }); + }); + listeners.end.forEach(function (handler) { + handler({ code: status, details: statusMessage, metadata: trailers }); + }); + listeners = null; + } + }); + return { + on: function (type, handler) { + listeners[type].push(handler); + return this; + }, + cancel: function () { + listeners = null; + client.close(); + } + }; +}; + exports.PlatformClient = PlatformClient; diff --git a/packages/dapi-grpc/protos/platform/v0/platform.proto b/packages/dapi-grpc/protos/platform/v0/platform.proto index e88d27c93ee..8ed8b26f718 100644 --- a/packages/dapi-grpc/protos/platform/v0/platform.proto +++ b/packages/dapi-grpc/protos/platform/v0/platform.proto @@ -6,6 +6,75 @@ package org.dash.platform.dapi.v0; import "google/protobuf/timestamp.proto"; +// Platform events subscription (v0) +message PlatformSubscriptionRequest { + message PlatformSubscriptionRequestV0 { + PlatformFilterV0 filter = 1; + // Interval in seconds between keepalive events (min 25, max 300, 0 disables + // keepalive). + uint32 keepalive_secs = 2; + } + oneof version { PlatformSubscriptionRequestV0 v0 = 1; } +} + +message PlatformSubscriptionResponse { + message PlatformSubscriptionResponseV0 { + // Server-generated ID for this subscription; not guaranteed to be unique + uint64 subscription_id = 1; + // Event details; can be nil/None, eg. during handshake + PlatformEventV0 event = 2; + } + oneof version { PlatformSubscriptionResponseV0 v0 = 1; } +} + +// Criteria that must be met by platform event to be propagated to the user. +message PlatformFilterV0 { + // Include all events generated by the Platform; experimental + message AllEvents{} + // Notify about every Platform (Tenderdash) block that gets committed (mined) + message BlockCommitted{} + + // Filter for StateTransitionResult events, by state transition hash + message StateTransitionResultFilter { + // When set, only match StateTransitionResult events for this tx hash. + optional bytes tx_hash = 1; + } + + oneof kind { + AllEvents all = 1; // subscribe to all platform events + BlockCommitted block_committed = 2; // subscribe to BlockCommitted events only + StateTransitionResultFilter state_transition_result = + 3; // subscribe to StateTransitionResult events (optionally filtered by + // tx_hash) + } +} + +message PlatformEventV0 { + message BlockMetadata { + uint64 height = 1 [ jstype = JS_STRING ]; + uint64 time_ms = 2 [ jstype = JS_STRING ]; + bytes block_id_hash = 3; + } + + message BlockCommitted { + BlockMetadata meta = 1; + uint32 tx_count = 2; + } + + message StateTransitionFinalized { + BlockMetadata meta = 1; + bytes tx_hash = 2; + } + + message Keepalive {} + + oneof event { + BlockCommitted block_committed = 1; + StateTransitionFinalized state_transition_finalized = 2; + Keepalive keepalive = 3; + } +} + service Platform { rpc broadcastStateTransition(BroadcastStateTransitionRequest) returns (BroadcastStateTransitionResponse); @@ -104,6 +173,14 @@ service Platform { rpc getGroupActions(GetGroupActionsRequest) returns (GetGroupActionsResponse); rpc getGroupActionSigners(GetGroupActionSignersRequest) returns (GetGroupActionSignersResponse); + + // Server-streaming subscription for platform events. + // + // Allows subscribing to various Platform events. + // + // Once connected, it sends handshake response with empty event. + rpc subscribePlatformEvents(PlatformSubscriptionRequest) + returns (stream PlatformSubscriptionResponse); } // Proof message includes cryptographic proofs for validating responses diff --git a/packages/dapi-grpc/src/lib.rs b/packages/dapi-grpc/src/lib.rs index d50aa188dd0..0cb662de77e 100644 --- a/packages/dapi-grpc/src/lib.rs +++ b/packages/dapi-grpc/src/lib.rs @@ -21,6 +21,7 @@ pub mod core { } #[cfg(feature = "platform")] +#[allow(non_camel_case_types)] pub mod platform { pub mod v0 { #[cfg(all(feature = "server", not(target_arch = "wasm32")))] diff --git a/packages/dashmate/configs/defaults/getBaseConfigFactory.js b/packages/dashmate/configs/defaults/getBaseConfigFactory.js index f8ae0e710b0..51125837a87 100644 --- a/packages/dashmate/configs/defaults/getBaseConfigFactory.js +++ b/packages/dashmate/configs/defaults/getBaseConfigFactory.js @@ -182,7 +182,6 @@ export default function getBaseConfigFactory() { http2: { maxConcurrentStreams: 10, }, - waitForStResultTimeout: '125s', host: '0.0.0.0', port: 443, }, @@ -240,6 +239,11 @@ export default function getBaseConfigFactory() { target: 'rs-dapi', }, }, + timeouts: { + waitForStateTransitionResult: 120000, + subscribePlatformEvents: 600000, + coreStreams: 600000, + }, metrics: { enabled: false, host: '127.0.0.1', @@ -251,7 +255,6 @@ export default function getBaseConfigFactory() { accessLogPath: null, accessLogFormat: 'combined', }, - waitForStResultTimeout: 120000, }, }, drive: { diff --git a/packages/dashmate/configs/getConfigFileMigrationsFactory.js b/packages/dashmate/configs/getConfigFileMigrationsFactory.js index b1d423cc364..5bcb23972d7 100644 --- a/packages/dashmate/configs/getConfigFileMigrationsFactory.js +++ b/packages/dashmate/configs/getConfigFileMigrationsFactory.js @@ -1164,6 +1164,16 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) .forEach(([name, options]) => { const defaultConfig = getDefaultConfigByNameOrGroup(name, options.group); + if (!options.platform.dapi.deprecated) { + if (defaultConfig.has('platform.dapi.deprecated')) { + options.platform.dapi.deprecated = defaultConfig.get('platform.dapi.deprecated'); + } + } else if (typeof options.platform.dapi.deprecated.enabled === 'undefined') { + if (defaultConfig.has('platform.dapi.deprecated.enabled')) { + options.platform.dapi.deprecated.enabled = defaultConfig.get('platform.dapi.deprecated.enabled'); + } + } + if (!options.platform.dapi.rsDapi) { options.platform.dapi.rsDapi = lodash.cloneDeep(defaultConfig.get('platform.dapi.rsDapi')); return; @@ -1323,10 +1333,12 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) .forEach(([name, options]) => { const defaultConfig = getDefaultConfigByNameOrGroup(name, options.group); + // Drop markers left by old DAPI config if (options.platform?.dapi?.deprecated) { delete options.platform.dapi.deprecated; } + // Fold legacy upstream entries into rsDapi and remove old keys if (options.platform?.gateway?.upstreams) { const { upstreams } = options.platform.gateway; const defaultUpstreams = defaultConfig.get('platform.gateway.upstreams'); @@ -1358,27 +1370,25 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) return; } + // Ensure rsDapi section exists and start with defaults if (!options.platform.dapi.rsDapi) { options.platform.dapi.rsDapi = lodash.cloneDeep(defaultConfig.get('platform.dapi.rsDapi')); } const { rsDapi } = options.platform.dapi; + const defaultTimeouts = defaultConfig.get('platform.dapi.rsDapi.timeouts'); - if (options.platform.dapi.api) { - const { waitForStResultTimeout } = options.platform.dapi.api; + let legacyWaitForStResultTimeout; + let legacyTimeouts; - if (typeof waitForStResultTimeout === 'number' - && typeof rsDapi.waitForStResultTimeout === 'undefined') { - rsDapi.waitForStResultTimeout = waitForStResultTimeout; - } + if (options.platform.dapi.api) { + legacyWaitForStResultTimeout = options.platform.dapi.api.waitForStResultTimeout; + legacyTimeouts = options.platform.dapi.api.timeouts; delete options.platform.dapi.api; } - if (typeof rsDapi.waitForStResultTimeout === 'undefined') { - rsDapi.waitForStResultTimeout = defaultConfig.get('platform.dapi.rsDapi.waitForStResultTimeout'); - } - + // Align docker images with defaults if (options.platform?.drive?.abci?.docker && defaultConfig.has('platform.drive.abci.docker.image')) { options.platform.drive.abci.docker.image = defaultConfig.get('platform.drive.abci.docker.image'); @@ -1388,6 +1398,31 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) && defaultConfig.has('platform.dapi.rsDapi.docker.image')) { options.platform.dapi.rsDapi.docker.image = defaultConfig.get('platform.dapi.rsDapi.docker.image'); } + + // Normalize rsDapi timeout structure and remove redundant legacy fields + const existingTimeouts = options.platform.dapi.rsDapi.timeouts + ?? legacyTimeouts; + const waitForStateTransitionResult = existingTimeouts?.waitForStateTransitionResult + ?? legacyWaitForStResultTimeout + ?? defaultTimeouts.waitForStateTransitionResult; + const subscribePlatformEvents = existingTimeouts?.subscribePlatformEvents + ?? defaultTimeouts.subscribePlatformEvents; + const coreStreams = existingTimeouts?.coreStreams + ?? defaultTimeouts.coreStreams; + + options.platform.dapi.rsDapi.timeouts = { + waitForStateTransitionResult, + subscribePlatformEvents, + coreStreams, + }; + + if (typeof rsDapi.waitForStResultTimeout !== 'undefined') { + delete rsDapi.waitForStResultTimeout; + } + + if (options.platform?.gateway?.listeners?.dapiAndDrive) { + delete options.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout; + } }); return configFile; diff --git a/packages/dashmate/docker-compose.yml b/packages/dashmate/docker-compose.yml index 9346e398257..a25daf0e012 100644 --- a/packages/dashmate/docker-compose.yml +++ b/packages/dashmate/docker-compose.yml @@ -150,7 +150,9 @@ services: - DAPI_CORE_RPC_URL=http://core:${CORE_RPC_PORT:?err} - DAPI_CORE_RPC_USER=dapi - DAPI_CORE_RPC_PASS=${CORE_RPC_USERS_DAPI_PASSWORD:?err} - - DAPI_STATE_TRANSITION_WAIT_TIMEOUT=${PLATFORM_DAPI_RS_DAPI_WAIT_FOR_ST_RESULT_TIMEOUT:?err} + - DAPI_STATE_TRANSITION_WAIT_TIMEOUT=${PLATFORM_DAPI_RS_DAPI_TIMEOUTS_WAIT_FOR_STATE_TRANSITION_RESULT:?err} + - DAPI_PLATFORM_EVENTS_TIMEOUT=${PLATFORM_DAPI_RS_DAPI_TIMEOUTS_SUBSCRIBE_PLATFORM_EVENTS:?err} + - DAPI_CORE_STREAM_TIMEOUT=${PLATFORM_DAPI_RS_DAPI_TIMEOUTS_CORE_STREAMS:?err} - DAPI_LOGGING_LEVEL=${PLATFORM_DAPI_RS_DAPI_LOGS_LEVEL:-info} - DAPI_LOGGING_JSON_FORMAT=${PLATFORM_DAPI_RS_DAPI_LOGS_JSON_FORMAT:-false} - DAPI_LOGGING_ACCESS_LOG_PATH=${PLATFORM_DAPI_RS_DAPI_LOGS_ACCESS_LOG_PATH:-} diff --git a/packages/dashmate/docs/config/dapi.md b/packages/dashmate/docs/config/dapi.md index 0b0e01aa0f4..eefd485cf92 100644 --- a/packages/dashmate/docs/config/dapi.md +++ b/packages/dashmate/docs/config/dapi.md @@ -39,6 +39,6 @@ Dashmate offsets the default metrics port per preset (mainnet 9091, testnet 1909 | Option | Description | Default | Example | |--------|-------------|---------|---------| -| `platform.dapi.rsDapi.waitForStResultTimeout` | Timeout for state transition results (ms) | `120000` | `240000` | - -This timeout controls how long rs-dapi waits for Drive to report the outcome of a state transition before returning a timeout error to the client. +| `platform.dapi.rsDapi.timeouts.waitForStateTransitionResult` | How long rs-dapi waits for Drive to return the outcome of a state transition before timing out (ms) | `120000` | `240000` | +| `platform.dapi.rsDapi.timeouts.subscribePlatformEvents` | Maximum duration for a platform events subscription stream before rs-dapi closes it (ms) | `600000` | `900000` | +| `platform.dapi.rsDapi.timeouts.coreStreams` | Maximum duration for Core streaming subscriptions (e.g., block headers) before rs-dapi closes them (ms) | `600000` | `900000` | diff --git a/packages/dashmate/docs/config/gateway.md b/packages/dashmate/docs/config/gateway.md index 7588602a9d9..d941f3d43c4 100644 --- a/packages/dashmate/docs/config/gateway.md +++ b/packages/dashmate/docs/config/gateway.md @@ -17,12 +17,13 @@ The listener configuration controls the API endpoints exposed by the Gateway: | `platform.gateway.listeners.dapiAndDrive.port` | Gateway API port | `443` | `8443` | | `platform.gateway.listeners.dapiAndDrive.host` | Gateway API host binding | `0.0.0.0` | `127.0.0.1` | | `platform.gateway.listeners.dapiAndDrive.http2.maxConcurrentStreams` | Max concurrent HTTP/2 streams per connection | `10` | `100` | -| `platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout` | Timeout for state transition results | `125s` | `300s` | Host binding notes: - Setting `0.0.0.0` allows connections from any IP address - Setting `127.0.0.1` restricts connections to localhost only +Timeouts for long-running routes are configured via `platform.dapi.rsDapi.timeouts.*` and automatically include a five-second grace period in Envoy. + ## Performance These settings control resource allocation and limits for the Gateway: diff --git a/packages/dashmate/docs/services/gateway.md b/packages/dashmate/docs/services/gateway.md index b017372cbf8..92b29d5792e 100644 --- a/packages/dashmate/docs/services/gateway.md +++ b/packages/dashmate/docs/services/gateway.md @@ -103,13 +103,13 @@ http2_protocol_options: ### Timeouts -Different endpoints have different timeout requirements: +Dashmate exposes per-endpoint timeout controls that are shared between rs-dapi and Envoy. Envoy is configured automatically with an additional five-second grace period so that rs-dapi can return structured errors before the proxy aborts a request. - Standard API endpoints: 10-15 seconds (fixed in Envoy configuration) -- Core streaming endpoints: 600 seconds (10 minutes) (fixed in Envoy configuration) -- waitForStateTransitionResult endpoint: 125 seconds (default) - -**Config option**: `platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout` + - Core streaming endpoints: derived from `platform.dapi.rsDapi.timeouts.coreStreams` (default 600 000 ms) + - waitForStateTransitionResult endpoint: derived from `platform.dapi.rsDapi.timeouts.waitForStateTransitionResult` (default 120 000 ms) + - subscribePlatformEvents endpoint: derived from `platform.dapi.rsDapi.timeouts.subscribePlatformEvents` (default 600 000 ms) + - All streaming routes share a fixed Envoy `idle_timeout` of 300s so that connections can stay open while rs-dapi manages its own deadlines. ### Circuit Breaking diff --git a/packages/dashmate/src/config/configJsonSchema.js b/packages/dashmate/src/config/configJsonSchema.js index 0b257184eb9..d42b8ac316b 100644 --- a/packages/dashmate/src/config/configJsonSchema.js +++ b/packages/dashmate/src/config/configJsonSchema.js @@ -561,9 +561,6 @@ export default { additionalProperties: false, required: ['maxConcurrentStreams'], }, - waitForStResultTimeout: { - $ref: '#/definitions/durationInSeconds', - }, host: { type: 'string', minLength: 1, @@ -573,7 +570,7 @@ export default { $ref: '#/definitions/port', }, }, - required: ['http2', 'host', 'port', 'waitForStResultTimeout'], + required: ['http2', 'host', 'port'], additionalProperties: false, }, }, @@ -829,6 +826,32 @@ export default { required: ['image', 'build', 'deploy'], additionalProperties: false, }, + timeouts: { + type: 'object', + properties: { + waitForStateTransitionResult: { + type: 'integer', + minimum: 1, + description: 'How many millis to wait for state transition result before timeout', + }, + subscribePlatformEvents: { + type: 'integer', + minimum: 1, + description: 'How many millis to keep platform event subscriptions open before timeout', + }, + coreStreams: { + type: 'integer', + minimum: 1, + description: 'How many millis to keep core streaming subscriptions open before timeout', + }, + }, + required: [ + 'waitForStateTransitionResult', + 'subscribePlatformEvents', + 'coreStreams', + ], + additionalProperties: false, + }, metrics: { $ref: '#/definitions/enabledHostPort', }, @@ -858,13 +881,8 @@ export default { required: ['level', 'jsonFormat', 'accessLogPath', 'accessLogFormat'], additionalProperties: false, }, - waitForStResultTimeout: { - type: 'integer', - minimum: 1, - description: 'How many millis to wait for state transition result before timeout', - }, }, - required: ['docker', 'metrics', 'logs', 'waitForStResultTimeout'], + required: ['docker', 'timeouts', 'metrics', 'logs'], additionalProperties: false, }, }, diff --git a/packages/dashmate/templates/platform/gateway/envoy.yaml.dot b/packages/dashmate/templates/platform/gateway/envoy.yaml.dot index bef1f4dcfce..8fdc955dc15 100644 --- a/packages/dashmate/templates/platform/gateway/envoy.yaml.dot +++ b/packages/dashmate/templates/platform/gateway/envoy.yaml.dot @@ -1,3 +1,9 @@ +{{ const formatTimeout = (value) => `${Math.max(1, Math.ceil((Number(value ?? 0) + 5000) / 1000))}s`; }} +{{ const rsDapiTimeouts = it.platform?.dapi?.rsDapi?.timeouts ?? {}; }} +{{ const streamIdleTimeout = '300s'; }} +{{ const coreStreamsTimeout = formatTimeout(rsDapiTimeouts.coreStreams ?? 0); }} +{{ const subscribePlatformEventsTimeout = formatTimeout(rsDapiTimeouts.subscribePlatformEvents ?? 0); }} +{{ const waitForStateTransitionTimeout = formatTimeout(rsDapiTimeouts.waitForStateTransitionResult ?? 0); }} !ignore filters: &filters - name: envoy.http_connection_manager typed_config: @@ -12,7 +18,7 @@ # A single HTTP connection timeout. max_connection_duration: 600s # How long to keep the connection alive when there are no streams (requests). - idle_timeout: 300s + idle_timeout: {{= streamIdleTimeout }} # Request (stream) timeout. # HTTP2 support multiple streams (requests) per connection. # For HTTP1 it applies for single request. @@ -32,7 +38,7 @@ # It means N requests can be in flight at the same time on a single connection. max_concurrent_streams: {{= it.platform.gateway.listeners.dapiAndDrive.http2.maxConcurrentStreams }} # Stream idle timeout - stream_idle_timeout: 15s + stream_idle_timeout: {{= streamIdleTimeout }} {{? it.platform.gateway.log.accessLogs }} access_log: {{~ it.platform.gateway.log.accessLogs :log }} @@ -116,13 +122,13 @@ prefix: "/org.dash.platform.dapi.v0.Core/subscribeTo" route: cluster: rs_dapi - idle_timeout: 300s + idle_timeout: {{= streamIdleTimeout }} # Upstream response timeout - timeout: 601s + timeout: {{= coreStreamsTimeout }} max_stream_duration: # Entire stream/request timeout - max_stream_duration: 601s - grpc_timeout_header_max: 600s + max_stream_duration: {{= coreStreamsTimeout }} + grpc_timeout_header_max: {{= coreStreamsTimeout }} # Core endpoints - match: prefix: "/org.dash.platform.dapi.v0.Core" @@ -135,25 +141,25 @@ path: "/org.dash.platform.dapi.v0.Platform/subscribePlatformEvents" route: cluster: rs_dapi - idle_timeout: {{= it.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout }} + idle_timeout: {{= streamIdleTimeout }} # Upstream response timeout - timeout: {{= it.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout }} + timeout: {{= subscribePlatformEventsTimeout }} max_stream_duration: # Entire stream/request timeout - max_stream_duration: {{= it.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout }} - grpc_timeout_header_max: {{= it.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout }} + max_stream_duration: {{= subscribePlatformEventsTimeout }} + grpc_timeout_header_max: {{= subscribePlatformEventsTimeout }} # rs-dapi waitForStateTransitionResult endpoint with bigger timeout (now exposed directly) - match: path: "/org.dash.platform.dapi.v0.Platform/waitForStateTransitionResult" route: cluster: rs_dapi - idle_timeout: {{= it.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout }} + idle_timeout: {{= streamIdleTimeout }} # Upstream response timeout - timeout: {{= it.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout }} + timeout: {{= waitForStateTransitionTimeout }} max_stream_duration: # Entire stream/request timeout - max_stream_duration: {{= it.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout }} - grpc_timeout_header_max: {{= it.platform.gateway.listeners.dapiAndDrive.waitForStResultTimeout }} + max_stream_duration: {{= waitForStateTransitionTimeout }} + grpc_timeout_header_max: {{= waitForStateTransitionTimeout }} # rs-dapi Platform endpoints (now exposed directly) - match: prefix: "/org.dash.platform.dapi.v0.Platform" diff --git a/packages/rs-dapi/README.md b/packages/rs-dapi/README.md index 71e6a708bc6..a1ad09eb569 100644 --- a/packages/rs-dapi/README.md +++ b/packages/rs-dapi/README.md @@ -22,6 +22,8 @@ Service Configuration: DAPI_CORE_RPC_USER - Dash Core RPC username (default: empty) DAPI_CORE_RPC_PASS - Dash Core RPC password (default: empty) DAPI_STATE_TRANSITION_WAIT_TIMEOUT - Timeout in ms (default: 30000) + DAPI_PLATFORM_EVENTS_TIMEOUT - Platform events stream timeout in ms (default: 600000) + DAPI_CORE_STREAM_TIMEOUT - Core streaming timeout in ms (default: 600000) CONFIGURATION LOADING: 1. Command line environment variables (highest priority) diff --git a/packages/rs-dapi/doc/DESIGN.md b/packages/rs-dapi/doc/DESIGN.md index 70a33af7aec..2057d83cb5d 100644 --- a/packages/rs-dapi/doc/DESIGN.md +++ b/packages/rs-dapi/doc/DESIGN.md @@ -264,7 +264,7 @@ Operational notes: - Access logging: HTTP/JSON-RPC and gRPC traffic share the same access logging layer when configured, so all protocols emit uniform access entries - Platform event streaming is handled via a direct upstream proxy: - - `subscribePlatformEvents` simply forwards every inbound command stream to a single Drive connection and relays responses back without multiplexing + - `subscribePlatformEvents` forwards each inbound subscription request to Drive and relays the resulting event stream without additional multiplexing #### Key Features - **Modular Organization**: Complex methods separated into dedicated modules for maintainability @@ -283,12 +283,11 @@ Operational notes: rs-dapi exposes `subscribePlatformEvents` as a server-streaming endpoint and currently performs a straightforward pass-through to rs-drive-abci. - Public interface: - - Bi-directional gRPC stream: `subscribePlatformEvents(request stream PlatformEventsCommand) -> (response stream PlatformEventsResponse)`. - - Commands (`Add`, `Remove`, `Ping`) and responses (`Event`, `Ack`, `Error`) stay in their protobuf `V0` envelopes end-to-end. + - Server-streaming gRPC method: `subscribePlatformEvents(PlatformSubscriptionRequest) -> (stream PlatformSubscriptionResponse)`. + - Requests carry versioned `V0` envelopes with the client subscription id and filter; responses return the same id alongside the event payload. - Upstream behavior: - - Each client stream obtains its own upstream Drive connection; tokio channels forward commands upstream and pipe responses back downstream without pooling. - - The `EventMux` from `rs-dash-event-bus` is retained for future multiplexing work but does not alter traffic today. + - Each client stream obtains its own upstream Drive connection; responses are forwarded downstream as they arrive without intermediate pooling or command channels. - Observability: - Standard `tracing` logging wraps the forwarders, and the proxy participates in the existing `/metrics` exporter via shared counters. diff --git a/packages/rs-dapi/src/config/mod.rs b/packages/rs-dapi/src/config/mod.rs index d9ba073338f..12b80c7598c 100644 --- a/packages/rs-dapi/src/config/mod.rs +++ b/packages/rs-dapi/src/config/mod.rs @@ -85,6 +85,18 @@ pub struct DapiConfig { deserialize_with = "from_str_or_number" )] pub state_transition_wait_timeout: u64, + /// Timeout for platform event subscriptions (in milliseconds) + #[serde( + rename = "dapi_platform_events_timeout", + deserialize_with = "from_str_or_number" + )] + pub platform_events_timeout: u64, + /// Timeout for core streaming subscriptions (in milliseconds) + #[serde( + rename = "dapi_core_stream_timeout", + deserialize_with = "from_str_or_number" + )] + pub core_stream_timeout: u64, /// Logging configuration #[serde(flatten)] pub logging: LoggingConfig, @@ -140,6 +152,8 @@ impl Default for DapiConfig { core: CoreConfig::default(), platform_cache_bytes: 2 * 1024 * 1024, state_transition_wait_timeout: 30000, // 30 seconds default + platform_events_timeout: 600000, // 10 minutes default + core_stream_timeout: 600000, // 10 minutes default logging: LoggingConfig::default(), } } diff --git a/packages/rs-dapi/src/config/tests.rs b/packages/rs-dapi/src/config/tests.rs index 62ebe034581..63d7f38f216 100644 --- a/packages/rs-dapi/src/config/tests.rs +++ b/packages/rs-dapi/src/config/tests.rs @@ -17,6 +17,8 @@ fn cleanup_env_vars() { "DAPI_TENDERDASH_WEBSOCKET_URI", "DAPI_CORE_ZMQ_URL", "DAPI_STATE_TRANSITION_WAIT_TIMEOUT", + "DAPI_PLATFORM_EVENTS_TIMEOUT", + "DAPI_CORE_STREAM_TIMEOUT", ]; for var in &env_vars { @@ -104,6 +106,8 @@ DAPI_TENDERDASH_URI=http://test-tenderdash:8000 DAPI_TENDERDASH_WEBSOCKET_URI=ws://test-tenderdash:8000/websocket DAPI_CORE_ZMQ_URL=tcp://test-core:30000 DAPI_STATE_TRANSITION_WAIT_TIMEOUT=45000 +DAPI_PLATFORM_EVENTS_TIMEOUT=510000 +DAPI_CORE_STREAM_TIMEOUT=610000 "#; fs::write(temp_file.path(), env_content).expect("Failed to write temp file"); @@ -125,6 +129,8 @@ DAPI_STATE_TRANSITION_WAIT_TIMEOUT=45000 ); assert_eq!(config.dapi.core.zmq_url, "tcp://test-core:30000"); assert_eq!(config.dapi.state_transition_wait_timeout, 45000); + assert_eq!(config.dapi.platform_events_timeout, 510000); + assert_eq!(config.dapi.core_stream_timeout, 610000); // Cleanup cleanup_env_vars(); @@ -157,6 +163,8 @@ DAPI_DRIVE_URI=http://partial-drive:8000 // Verify defaults are used for unspecified values assert_eq!(config.dapi.tenderdash.uri, "http://127.0.0.1:26657"); // default assert_eq!(config.dapi.state_transition_wait_timeout, 30000); // default + assert_eq!(config.dapi.platform_events_timeout, 600000); // default + assert_eq!(config.dapi.core_stream_timeout, 600000); // default // Cleanup cleanup_env_vars(); diff --git a/packages/rs-dapi/src/main.rs b/packages/rs-dapi/src/main.rs index 7508eddb897..f6ae4e2d550 100644 --- a/packages/rs-dapi/src/main.rs +++ b/packages/rs-dapi/src/main.rs @@ -111,7 +111,7 @@ impl Cli { "rs-dapi server initializing", ); - let mut server_future = run_server(config, access_logger); + let server_future = run_server(config, access_logger); tokio::pin!(server_future); let outcome = tokio::select! { @@ -130,8 +130,8 @@ impl Cli { } }; - if let Some(result) = outcome { - if let Err(e) = result { + if let Some(result) = outcome + && let Err(e) = result { error!("Server error: {}", e); // Check if this is a connection-related error and set appropriate exit code @@ -161,7 +161,6 @@ impl Cli { } } } - } Ok(()) } Commands::Config => dump_config(&config), diff --git a/packages/rs-dapi/src/metrics.rs b/packages/rs-dapi/src/metrics.rs index 7692fd14bb9..308dfeafb0e 100644 --- a/packages/rs-dapi/src/metrics.rs +++ b/packages/rs-dapi/src/metrics.rs @@ -66,12 +66,8 @@ pub enum Metric { RequestDuration, /// Platform events: active sessions gauge PlatformEventsActiveSessions, - /// Platform events: commands processed, labels [op] - PlatformEventsCommands, /// Platform events: forwarded events counter PlatformEventsForwardedEvents, - /// Platform events: forwarded acks counter - PlatformEventsForwardedAcks, /// Platform events: forwarded errors counter PlatformEventsForwardedErrors, /// Platform events: upstream streams started counter @@ -91,11 +87,9 @@ impl Metric { Metric::RequestCount => "rsdapi_requests_total", Metric::RequestDuration => "rsdapi_request_duration_seconds", Metric::PlatformEventsActiveSessions => "rsdapi_platform_events_active_sessions", - Metric::PlatformEventsCommands => "rsdapi_platform_events_commands_total", Metric::PlatformEventsForwardedEvents => { "rsdapi_platform_events_forwarded_events_total" } - Metric::PlatformEventsForwardedAcks => "rsdapi_platform_events_forwarded_acks_total", Metric::PlatformEventsForwardedErrors => { "rsdapi_platform_events_forwarded_errors_total" } @@ -120,9 +114,7 @@ impl Metric { Metric::PlatformEventsActiveSessions => { "Current number of active Platform events sessions" } - Metric::PlatformEventsCommands => "Platform events commands processed by operation", Metric::PlatformEventsForwardedEvents => "Platform events forwarded to clients", - Metric::PlatformEventsForwardedAcks => "Platform acks forwarded to clients", Metric::PlatformEventsForwardedErrors => "Platform errors forwarded to clients", Metric::PlatformEventsUpstreamStreams => { "Upstream subscribePlatformEvents streams started" @@ -159,7 +151,6 @@ pub enum Label { // TODO: ensure we have a limited set of endpoints, so that cardinality is controlled and we don't overload Prometheus Endpoint, Status, - Op, } impl Label { @@ -172,7 +163,6 @@ impl Label { Label::Protocol => "protocol", Label::Endpoint => "endpoint", Label::Status => "status", - Label::Op => "op", } } } @@ -251,15 +241,6 @@ pub static REQUEST_DURATION_SECONDS: Lazy = Lazy::new(|| { .expect("create histogram vec") }); -pub static PLATFORM_EVENTS_COMMANDS: Lazy = Lazy::new(|| { - register_int_counter_vec!( - Metric::PlatformEventsCommands.name(), - Metric::PlatformEventsCommands.help(), - &[Label::Op.name()] - ) - .expect("create counter vec") -}); - pub static PLATFORM_EVENTS_FORWARDED_EVENTS: Lazy = Lazy::new(|| { register_int_counter!( Metric::PlatformEventsForwardedEvents.name(), @@ -268,14 +249,6 @@ pub static PLATFORM_EVENTS_FORWARDED_EVENTS: Lazy = Lazy::new(|| { .expect("create counter") }); -pub static PLATFORM_EVENTS_FORWARDED_ACKS: Lazy = Lazy::new(|| { - register_int_counter!( - Metric::PlatformEventsForwardedAcks.name(), - Metric::PlatformEventsForwardedAcks.help() - ) - .expect("create counter") -}); - pub static PLATFORM_EVENTS_FORWARDED_ERRORS: Lazy = Lazy::new(|| { register_int_counter!( Metric::PlatformEventsForwardedErrors.name(), @@ -533,21 +506,11 @@ pub fn platform_events_active_sessions_dec() { PLATFORM_EVENTS_ACTIVE_SESSIONS.dec(); } -#[inline] -pub fn platform_events_command(op: &str) { - PLATFORM_EVENTS_COMMANDS.with_label_values(&[op]).inc(); -} - #[inline] pub fn platform_events_forwarded_event() { PLATFORM_EVENTS_FORWARDED_EVENTS.inc(); } -#[inline] -pub fn platform_events_forwarded_ack() { - PLATFORM_EVENTS_FORWARDED_ACKS.inc(); -} - #[inline] pub fn platform_events_forwarded_error() { PLATFORM_EVENTS_FORWARDED_ERRORS.inc(); diff --git a/packages/rs-dapi/src/server/grpc.rs b/packages/rs-dapi/src/server/grpc.rs index 0bc5b5503e4..a8f95291bdd 100644 --- a/packages/rs-dapi/src/server/grpc.rs +++ b/packages/rs-dapi/src/server/grpc.rs @@ -1,7 +1,7 @@ use std::pin::Pin; use std::task::{Context, Poll}; use std::time::Duration; -use tracing::{info, trace}; +use tracing::info; use crate::error::DAPIResult; use crate::logging::AccessLogLayer; @@ -18,8 +18,6 @@ use super::DapiServer; /// Timeouts for regular requests - sync with envoy config if changed there const UNARY_TIMEOUT_SECS: u64 = 15; -/// Timeouts for streaming requests - sync with envoy config if changed there -const STREAMING_TIMEOUT_SECS: u64 = 600; /// Safety margin to ensure we respond before client-side gRPC deadlines fire const GRPC_REQUEST_TIME_SAFETY_MARGIN: Duration = Duration::from_millis(50); @@ -40,16 +38,16 @@ impl DapiServer { const MAX_DECODING_BYTES: usize = 64 * 1024 * 1024; // 64 MiB const MAX_ENCODING_BYTES: usize = 32 * 1024 * 1024; // 32 MiB + // TCP keepalive a bit higher than app layer keepalive to avoid connection drops let builder = dapi_grpc::tonic::transport::Server::builder() - .tcp_keepalive(Some(Duration::from_secs(25))) - .timeout(Duration::from_secs( - STREAMING_TIMEOUT_SECS.max(UNARY_TIMEOUT_SECS) + 5, - )); // failsafe timeout - we handle timeouts in the timeout_layer + .tcp_keepalive(Some(Duration::from_secs(26))); - // Create timeout layer with different timeouts for unary vs streaming + // Apply method-specific deadlines; service handlers rely on this layer for cancellation. let timeout_layer = TimeoutLayer::new( Duration::from_secs(UNARY_TIMEOUT_SECS), - Duration::from_secs(STREAMING_TIMEOUT_SECS), + Duration::from_millis(self.config.dapi.state_transition_wait_timeout), + Duration::from_millis(self.config.dapi.platform_events_timeout), + Duration::from_millis(self.config.dapi.core_stream_timeout), ); let metrics_layer = MetricsLayer::new(); @@ -88,38 +86,50 @@ impl DapiServer { #[derive(Clone)] struct TimeoutLayer { unary_timeout: Duration, - streaming_timeout: Duration, + state_transition_timeout: Duration, + platform_events_timeout: Duration, + core_stream_timeout: Duration, } impl TimeoutLayer { - fn new(unary_timeout: Duration, streaming_timeout: Duration) -> Self { + fn new( + unary_timeout: Duration, + state_transition_timeout: Duration, + platform_events_timeout: Duration, + core_stream_timeout: Duration, + ) -> Self { Self { unary_timeout, - streaming_timeout, + state_transition_timeout, + platform_events_timeout, + core_stream_timeout, } } /// Determine the appropriate timeout for a given gRPC method path. fn timeout_for_method(&self, path: &str) -> Duration { - // All known streaming methods in Core service (all use "stream" return type) - const STREAMING_METHODS: &[&str] = &[ - "/org.dash.platform.dapi.v0.Core/subscribeToBlockHeadersWithChainLocks", - "/org.dash.platform.dapi.v0.Core/subscribeToTransactionsWithProofs", - "/org.dash.platform.dapi.v0.Core/subscribeToMasternodeList", - "/org.dash.platform.dapi.v0.Platform/waitForStateTransitionResult", - "/org.dash.platform.dapi.v0.Platform/subscribePlatformEvents", - ]; - - // Check if this is a known streaming method - if STREAMING_METHODS.contains(&path) { - tracing::trace!( - path, - "Detected streaming gRPC method, applying streaming timeout" - ); - self.streaming_timeout - } else { - self.unary_timeout - } + let timeout = match path { + "/org.dash.platform.dapi.v0.Platform/waitForStateTransitionResult" => { + self.state_transition_timeout + } + "/org.dash.platform.dapi.v0.Platform/subscribePlatformEvents" => { + self.platform_events_timeout + } + "/org.dash.platform.dapi.v0.Core/subscribeToBlockHeadersWithChainLocks" + | "/org.dash.platform.dapi.v0.Core/subscribeToTransactionsWithProofs" + | "/org.dash.platform.dapi.v0.Core/subscribeToMasternodeList" => { + self.core_stream_timeout + } + _ => self.unary_timeout, + }; + + tracing::trace!( + path, + timeout = timeout.as_secs_f32(), + "Applying timeout for gRPC method" + ); + + timeout } } @@ -168,7 +178,7 @@ where .min(default_timeout); if timeout_from_header.is_some() { - trace!( + tracing::trace!( path, header_timeout = timeout_from_header.unwrap_or_default().as_secs_f32(), timeout = effective_timeout.as_secs_f32(), @@ -251,7 +261,12 @@ mod tests { #[tokio::test] async fn timeout_service_returns_deadline_exceeded_status() { - let timeout_layer = TimeoutLayer::new(Duration::from_millis(5), Duration::from_secs(1)); + let timeout_layer = TimeoutLayer::new( + Duration::from_millis(5), + Duration::from_secs(1), + Duration::from_secs(2), + Duration::from_secs(3), + ); let mut service = timeout_layer.layer(SlowService); let request = Request::builder().uri("/test").body(()).unwrap(); diff --git a/packages/rs-dapi/src/services/platform_service/mod.rs b/packages/rs-dapi/src/services/platform_service/mod.rs index 07d9111a8e2..4a1c1e8aaea 100644 --- a/packages/rs-dapi/src/services/platform_service/mod.rs +++ b/packages/rs-dapi/src/services/platform_service/mod.rs @@ -4,6 +4,7 @@ mod broadcast_state_transition; mod error_mapping; mod get_status; +mod subscribe_platform_events; mod wait_for_state_transition_result; use dapi_grpc::platform::v0::platform_server::Platform; @@ -167,6 +168,20 @@ impl PlatformServiceImpl { impl Platform for PlatformServiceImpl { // Manually implemented methods + // Streaming: multiplexed platform events + type subscribePlatformEventsStream = tokio_stream::wrappers::ReceiverStream< + Result, + >; + + async fn subscribe_platform_events( + &self, + request: dapi_grpc::tonic::Request, + ) -> Result< + dapi_grpc::tonic::Response, + dapi_grpc::tonic::Status, + > { + self.subscribe_platform_events_impl(request).await + } /// Get the status of the whole system /// /// This method retrieves the current status of Drive, Tenderdash, and other components. diff --git a/packages/rs-dapi/src/services/platform_service/subscribe_platform_events.rs b/packages/rs-dapi/src/services/platform_service/subscribe_platform_events.rs new file mode 100644 index 00000000000..d8fc10889c3 --- /dev/null +++ b/packages/rs-dapi/src/services/platform_service/subscribe_platform_events.rs @@ -0,0 +1,84 @@ +use crate::{DapiError, metrics}; +use dapi_grpc::platform::v0::{PlatformSubscriptionRequest, PlatformSubscriptionResponse}; +use dapi_grpc::tonic::{Request, Response, Status}; +use futures::StreamExt; +use std::sync::Arc; +use tokio::sync::mpsc; +use tokio_stream::wrappers::ReceiverStream; + +use super::PlatformServiceImpl; + +const PLATFORM_EVENTS_STREAM_BUFFER: usize = 512; + +/// Tracks an active platform events session until all clones drop. +struct ActiveSessionGuard; + +impl ActiveSessionGuard { + fn new() -> Arc { + metrics::platform_events_active_sessions_inc(); + Arc::new(Self) + } +} + +impl Drop for ActiveSessionGuard { + fn drop(&mut self) { + metrics::platform_events_active_sessions_dec(); + } +} + +impl PlatformServiceImpl { + /// Proxy implementation of Platform::subscribePlatformEvents. + /// + /// Forwards a subscription request upstream to Drive and streams responses back to the caller. + pub async fn subscribe_platform_events_impl( + &self, + request: Request, + ) -> Result>>, Status> + { + let active_session = ActiveSessionGuard::new(); + + let mut client = self.drive_client.get_client(); + let uplink_resp = client.subscribe_platform_events(request).await?; + metrics::platform_events_upstream_stream_started(); + let mut uplink_resp_rx = uplink_resp.into_inner(); + + // Channel to forward responses back to caller (downlink) + let (downlink_resp_tx, downlink_resp_rx) = mpsc::channel::< + Result, + >(PLATFORM_EVENTS_STREAM_BUFFER); + + // Spawn a task to forward uplink responses -> downlink + { + let session_handle = active_session; + self.workers.spawn(async move { + let _session_guard = session_handle; + while let Some(msg) = uplink_resp_rx.next().await { + match msg { + Ok(response) => { + metrics::platform_events_forwarded_event(); + if downlink_resp_tx.send(Ok(response)).await.is_err() { + tracing::debug!( + "Platform events downlink response channel closed; stopping forward" + ); + break; + } + } + Err(status) => { + metrics::platform_events_forwarded_error(); + if downlink_resp_tx.send(Err(status)).await.is_err() { + tracing::debug!( + "Platform events downlink response channel closed while forwarding error" + ); + break; + } + } + } + } + tracing::debug!("Platform events uplink response stream closed"); + Err::<(), DapiError>(DapiError::ConnectionClosed) + }); + } + + Ok(Response::new(ReceiverStream::new(downlink_resp_rx))) + } +} diff --git a/packages/rs-dapi/src/services/platform_service/wait_for_state_transition_result.rs b/packages/rs-dapi/src/services/platform_service/wait_for_state_transition_result.rs index 3b1ff1437d3..347e5befbac 100644 --- a/packages/rs-dapi/src/services/platform_service/wait_for_state_transition_result.rs +++ b/packages/rs-dapi/src/services/platform_service/wait_for_state_transition_result.rs @@ -10,8 +10,6 @@ use dapi_grpc::platform::v0::{ wait_for_state_transition_result_response, }; use dapi_grpc::tonic::{Request, Response}; -use std::time::Duration; -use tokio::time::timeout; use tracing::{Instrument, debug, trace}; impl PlatformServiceImpl { @@ -76,50 +74,32 @@ impl PlatformServiceImpl { } }; - // Wait for transaction event with timeout - let timeout_duration = - Duration::from_millis(self.config.dapi.state_transition_wait_timeout); + trace!("Waiting for transaction event"); - trace!( - "Waiting for transaction event with timeout: {:?}", - timeout_duration - ); - - // Filter events to find our specific transaction - timeout(timeout_duration, async { - loop { - let result = sub_handle.recv().await; - match result { - Some(crate::services::streaming_service::StreamingEvent::PlatformTx { event }) => { - debug!(tx = hash_hex, "Received matching transaction event"); - return self.build_response_from_event(event, v0.prove).await; - } - Some(message) => { - // Ignore other message types - trace!( - ?message, - "Received non-matching message, ignoring; this should not happen due to filtering" - ); - continue; - } - None => { - debug!("Platform tx subscription channel closed unexpectedly"); - return Err(DapiError::Unavailable( - "Platform tx subscription channel closed unexpectedly".to_string(), - )); - } + loop { + // gRPC TimeoutLayer enforces overall deadline; this loop exits when the request is cancelled. + let result = sub_handle.recv().await; + match result { + Some(crate::services::streaming_service::StreamingEvent::PlatformTx { event }) => { + debug!(tx = hash_hex, "Received matching transaction event"); + return self.build_response_from_event(event, v0.prove).await; + } + Some(message) => { + // Ignore other message types + trace!( + ?message, + "Received non-matching message, ignoring; this should not happen due to filtering" + ); + continue; + } + None => { + debug!("Platform tx subscription channel closed unexpectedly"); + return Err(DapiError::Unavailable( + "Platform tx subscription channel closed unexpectedly".to_string(), + )); } } - }) - .await - .map_err(|msg| DapiError::Timeout(msg.to_string())) - .inspect_err(|e| { - tracing::debug!( - error = %e, - tx = %hash_hex, - "wait_for_state_transition_result: timed out" - ); - })? + } } .instrument(span) .await @@ -161,8 +141,8 @@ impl PlatformServiceImpl { } // No error; generate proof if requested - if prove && !tx_response.tx.is_empty() { - if let Ok(tx_data) = + if prove && !tx_response.tx.is_empty() + && let Ok(tx_data) = base64::prelude::Engine::decode(&base64::prelude::BASE64_STANDARD, &tx_response.tx) { match self.fetch_proof_for_state_transition(tx_data).await { @@ -178,7 +158,6 @@ impl PlatformServiceImpl { } } } - } let body = WaitForStateTransitionResultResponse { version: Some(wait_for_state_transition_result_response::Version::V0( diff --git a/packages/rs-dapi/src/services/streaming_service/block_header_stream.rs b/packages/rs-dapi/src/services/streaming_service/block_header_stream.rs index ce8f7601ff9..55290d87670 100644 --- a/packages/rs-dapi/src/services/streaming_service/block_header_stream.rs +++ b/packages/rs-dapi/src/services/streaming_service/block_header_stream.rs @@ -1,6 +1,5 @@ use std::collections::HashSet; use std::sync::Arc; - use dapi_grpc::core::v0::block_headers_with_chain_locks_request::FromBlock; use dapi_grpc::core::v0::{ BlockHeaders, BlockHeadersWithChainLocksRequest, BlockHeadersWithChainLocksResponse, diff --git a/packages/rs-dapi/src/services/streaming_service/bloom.rs b/packages/rs-dapi/src/services/streaming_service/bloom.rs index f71ca8a1971..2915799ab75 100644 --- a/packages/rs-dapi/src/services/streaming_service/bloom.rs +++ b/packages/rs-dapi/src/services/streaming_service/bloom.rs @@ -11,11 +11,10 @@ fn script_matches(filter: &CoreBloomFilter, script: &ScriptBuf) -> bool { return true; } - if let Some(pubkey_hash) = extract_pubkey_hash(script.as_script()) { - if filter.contains(&pubkey_hash) { + if let Some(pubkey_hash) = extract_pubkey_hash(script.as_script()) + && filter.contains(&pubkey_hash) { return true; } - } extract_pushdatas(script_bytes) .into_iter() diff --git a/packages/rs-dapi/src/services/streaming_service/mod.rs b/packages/rs-dapi/src/services/streaming_service/mod.rs index dac63b4e39e..e004bbf8c0b 100644 --- a/packages/rs-dapi/src/services/streaming_service/mod.rs +++ b/packages/rs-dapi/src/services/streaming_service/mod.rs @@ -1,5 +1,6 @@ // Streaming service modular implementation -// This module handles real-time streaming of blockchain data from ZMQ to gRPC clients +// This module handles real-time streaming of blockchain data from ZMQ to gRPC clients. +// Stream lifetimes are governed by the gRPC TimeoutLayer in server/grpc.rs. mod block_header_stream; mod bloom; @@ -15,8 +16,8 @@ use crate::config::Config; use crate::sync::Workers; use dash_spv::Hash; use std::sync::Arc; -use tokio::sync::broadcast; use tokio::sync::broadcast::error::RecvError; +use tokio::sync::broadcast; use tokio::time::{Duration, sleep}; use tracing::{debug, trace}; diff --git a/packages/rs-dash-event-bus/Cargo.toml b/packages/rs-dash-event-bus/Cargo.toml index 1eae3b9904e..a90e0a2b233 100644 --- a/packages/rs-dash-event-bus/Cargo.toml +++ b/packages/rs-dash-event-bus/Cargo.toml @@ -3,7 +3,7 @@ name = "rs-dash-event-bus" version.workspace = true edition = "2024" license = "MIT" -description = "Shared event bus and Platform events multiplexer for Dash Platform (rs-dapi, rs-drive-abci, rs-sdk)" +description = "Shared event bus utilities for Dash Platform (rs-dapi, rs-drive-abci, rs-sdk)" [lib] name = "dash_event_bus" @@ -17,7 +17,6 @@ metrics = ["dep:metrics"] tokio = { version = "1", features = ["rt", "macros", "sync", "time"] } tracing = "0.1" - # Optional metrics metrics = { version = "0.24.2", optional = true } diff --git a/packages/rs-dash-event-bus/src/event_bus.rs b/packages/rs-dash-event-bus/src/event_bus.rs index 640ba838a8e..3c914720124 100644 --- a/packages/rs-dash-event-bus/src/event_bus.rs +++ b/packages/rs-dash-event-bus/src/event_bus.rs @@ -271,14 +271,15 @@ where if let Ok(handle) = tokio::runtime::Handle::try_current() { handle.spawn(async move { bus.remove_subscription(id).await; - tracing::trace!("event_bus: removed subscription id={} on drop", id); }); } else { // Fallback: best-effort synchronous removal using try_write() - tracing::debug!( - "event_bus: no current tokio runtime, not removing subscription id={}", - id - ); + if let Ok(mut subs) = bus.subs.try_write() + && subs.remove(&id).is_some() + { + metrics_unsubscribe_inc(); + metrics_active_gauge_set(subs.len()); + } } } } diff --git a/packages/rs-dash-event-bus/src/lib.rs b/packages/rs-dash-event-bus/src/lib.rs index ab950920409..cd0423765fb 100644 --- a/packages/rs-dash-event-bus/src/lib.rs +++ b/packages/rs-dash-event-bus/src/lib.rs @@ -1,7 +1,6 @@ -//! rs-dash-event-bus: shared event bus and Platform events multiplexer +//! rs-dash-event-bus: shared event bus utilities for Dash Platform components. //! //! - `event_bus`: generic in-process pub/sub with pluggable filtering -//! - `event_mux`: upstream bi-di gRPC multiplexer for Platform events pub mod event_bus; diff --git a/packages/rs-drive-abci/Cargo.toml b/packages/rs-drive-abci/Cargo.toml index def4a93cae2..4eb9fc96e01 100644 --- a/packages/rs-drive-abci/Cargo.toml +++ b/packages/rs-drive-abci/Cargo.toml @@ -62,7 +62,7 @@ reopen = { version = "1.0.3" } delegate = { version = "0.13" } regex = { version = "1.8.1" } metrics = { version = "0.24" } -metrics-exporter-prometheus = { version = "0.16", default-features = false, features = [ +metrics-exporter-prometheus = { version = "0.17", default-features = false, features = [ "http-listener", ] } url = { version = "2.3.1" } @@ -73,14 +73,15 @@ tokio = { version = "1.40", features = [ "time", ] } tokio-util = { version = "0.7" } +tokio-stream = { version = "0.1" } derive_more = { version = "1.0", features = ["from", "deref", "deref_mut"] } async-trait = "0.1.77" console-subscriber = { version = "0.4", optional = true } bls-signatures = { git = "https://github.com/dashpay/bls-signatures", rev = "0842b17583888e8f46c252a4ee84cdfd58e0546f", optional = true } +rs-dash-event-bus = { path = "../rs-dash-event-bus" } +sha2 = { version = "0.10" } [dev-dependencies] -bs58 = { version = "0.5.0" } -base64 = "0.22.1" platform-version = { path = "../rs-platform-version", features = [ "mock-versions", ] } @@ -108,7 +109,7 @@ rocksdb = { version = "0.23.0" } integer-encoding = { version = "4.0.0" } [features] -default = ["bls-signatures"] +default = ["bls-signatures","mocks","console","grovedbg"] mocks = ["mockall", "drive/fixtures-and-mocks", "bls-signatures"] console = ["console-subscriber", "tokio/tracing"] testing-config = [] @@ -123,3 +124,7 @@ unexpected_cfgs = { level = "warn", check-cfg = [ 'cfg(tokio_unstable)', 'cfg(create_sdk_test_data)', ] } + +[package.metadata.cargo-machete] + +ignored = ["rs-dash-event-bus"] diff --git a/packages/rs-drive-abci/src/abci/app/consensus.rs b/packages/rs-drive-abci/src/abci/app/consensus.rs index d2145d1e4b0..85909a0287d 100644 --- a/packages/rs-drive-abci/src/abci/app/consensus.rs +++ b/packages/rs-drive-abci/src/abci/app/consensus.rs @@ -1,11 +1,16 @@ -use crate::abci::app::{BlockExecutionApplication, PlatformApplication, TransactionalApplication}; +use crate::abci::app::{ + BlockExecutionApplication, EventBusApplication, PlatformApplication, TransactionalApplication, +}; use crate::abci::handler; use crate::abci::handler::error::error_into_exception; use crate::error::execution::ExecutionError; use crate::error::Error; use crate::execution::types::block_execution_context::BlockExecutionContext; use crate::platform_types::platform::Platform; +use crate::query::PlatformFilterAdapter; use crate::rpc::core::CoreRPCLike; +use dapi_grpc::platform::v0::PlatformEventV0; +use dash_event_bus::event_bus::EventBus; use dpp::version::PlatformVersion; use drive::grovedb::Transaction; use std::fmt::Debug; @@ -23,15 +28,21 @@ pub struct ConsensusAbciApplication<'a, C> { transaction: RwLock>>, /// The current block execution context block_execution_context: RwLock>, + /// In-process Platform event bus used to publish events at finalize_block + event_bus: EventBus, } impl<'a, C> ConsensusAbciApplication<'a, C> { /// Create new ABCI app - pub fn new(platform: &'a Platform) -> Self { + pub fn new( + platform: &'a Platform, + event_bus: EventBus, + ) -> Self { Self { platform, transaction: Default::default(), block_execution_context: Default::default(), + event_bus, } } } @@ -48,6 +59,12 @@ impl BlockExecutionApplication for ConsensusAbciApplication<'_, C> { } } +impl EventBusApplication for ConsensusAbciApplication<'_, C> { + fn event_bus(&self) -> &EventBus { + &self.event_bus + } +} + impl<'a, C> TransactionalApplication<'a> for ConsensusAbciApplication<'a, C> { /// create and store a new transaction fn start_transaction(&self) { diff --git a/packages/rs-drive-abci/src/abci/app/full.rs b/packages/rs-drive-abci/src/abci/app/full.rs index 542bce32668..cd7a8424c6e 100644 --- a/packages/rs-drive-abci/src/abci/app/full.rs +++ b/packages/rs-drive-abci/src/abci/app/full.rs @@ -1,11 +1,16 @@ -use crate::abci::app::{BlockExecutionApplication, PlatformApplication, TransactionalApplication}; +use crate::abci::app::{ + BlockExecutionApplication, EventBusApplication, PlatformApplication, TransactionalApplication, +}; use crate::abci::handler; use crate::abci::handler::error::error_into_exception; use crate::error::execution::ExecutionError; use crate::error::Error; use crate::execution::types::block_execution_context::BlockExecutionContext; use crate::platform_types::platform::Platform; +use crate::query::PlatformFilterAdapter; use crate::rpc::core::CoreRPCLike; +use dapi_grpc::platform::v0::PlatformEventV0; +use dash_event_bus::event_bus::EventBus; use dpp::version::PlatformVersion; use drive::grovedb::Transaction; use std::fmt::Debug; @@ -23,6 +28,8 @@ pub struct FullAbciApplication<'a, C> { pub transaction: RwLock>>, /// The current block execution context pub block_execution_context: RwLock>, + /// In-process Platform event bus used to publish events at finalize_block + pub event_bus: EventBus, } impl<'a, C> FullAbciApplication<'a, C> { @@ -32,6 +39,7 @@ impl<'a, C> FullAbciApplication<'a, C> { platform, transaction: Default::default(), block_execution_context: Default::default(), + event_bus: EventBus::new(), } } } @@ -48,6 +56,12 @@ impl BlockExecutionApplication for FullAbciApplication<'_, C> { } } +impl EventBusApplication for FullAbciApplication<'_, C> { + fn event_bus(&self) -> &EventBus { + &self.event_bus + } +} + impl<'a, C> TransactionalApplication<'a> for FullAbciApplication<'a, C> { /// create and store a new transaction fn start_transaction(&self) { diff --git a/packages/rs-drive-abci/src/abci/app/mod.rs b/packages/rs-drive-abci/src/abci/app/mod.rs index d86290b566b..2c44f92bcd2 100644 --- a/packages/rs-drive-abci/src/abci/app/mod.rs +++ b/packages/rs-drive-abci/src/abci/app/mod.rs @@ -10,12 +10,22 @@ pub mod execution_result; mod full; use crate::execution::types::block_execution_context::BlockExecutionContext; +use crate::query::PlatformFilterAdapter; use crate::rpc::core::DefaultCoreRPC; pub use check_tx::CheckTxAbciApplication; pub use consensus::ConsensusAbciApplication; +use dash_event_bus::event_bus::EventBus; use dpp::version::PlatformVersion; pub use full::FullAbciApplication; +/// Provides access to the in-process Platform event bus +pub trait EventBusApplication { + /// Returns the Platform `EventBus` used for publishing Platform events + fn event_bus( + &self, + ) -> &EventBus; +} + /// Platform-based ABCI application pub trait PlatformApplication { /// Returns Platform diff --git a/packages/rs-drive-abci/src/abci/handler/finalize_block.rs b/packages/rs-drive-abci/src/abci/handler/finalize_block.rs index 852f85cc6b8..396f8680a9b 100644 --- a/packages/rs-drive-abci/src/abci/handler/finalize_block.rs +++ b/packages/rs-drive-abci/src/abci/handler/finalize_block.rs @@ -1,11 +1,16 @@ -use crate::abci::app::{BlockExecutionApplication, PlatformApplication, TransactionalApplication}; +use crate::abci::app::{ + BlockExecutionApplication, EventBusApplication, PlatformApplication, TransactionalApplication, +}; use crate::error::execution::ExecutionError; use crate::error::Error; use crate::execution::types::block_execution_context::v0::BlockExecutionContextV0Getters; use crate::platform_types::cleaned_abci_messages::finalized_block_cleaned_request::v0::FinalizeBlockCleanedRequest; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use crate::query::PlatformFilterAdapter; use crate::rpc::core::CoreRPCLike; +use dapi_grpc::platform::v0::{platform_event_v0, PlatformEventV0}; use dpp::dashcore::Network; +use sha2::{Digest, Sha256}; use std::sync::atomic::Ordering; use tenderdash_abci::proto::abci as proto; @@ -14,7 +19,10 @@ pub fn finalize_block<'a, A, C>( request: proto::RequestFinalizeBlock, ) -> Result where - A: PlatformApplication + TransactionalApplication<'a> + BlockExecutionApplication, + A: PlatformApplication + + TransactionalApplication<'a> + + BlockExecutionApplication + + EventBusApplication, C: CoreRPCLike, { let _timer = crate::metrics::abci_request_duration("finalize_block"); @@ -46,7 +54,7 @@ where let block_height = request_finalize_block.height; let block_finalization_outcome = app.platform().finalize_block_proposal( - request_finalize_block, + request_finalize_block.clone(), block_execution_context, transaction, platform_version, @@ -96,5 +104,76 @@ where .committed_block_height_guard .store(block_height, Ordering::Relaxed); + let bus = app.event_bus().clone(); + + publish_block_committed_event(&bus, &request_finalize_block)?; + publish_state_transition_result_events(&bus, &request_finalize_block)?; + Ok(proto::ResponseFinalizeBlock { retain_height: 0 }) } + +fn publish_block_committed_event( + event_bus: &dash_event_bus::event_bus::EventBus, + request_finalize_block: &FinalizeBlockCleanedRequest, +) -> Result<(), Error> { + // Publish BlockCommitted platform event to the global event bus (best-effort) + let header_time = request_finalize_block.block.header.time; + let seconds = header_time.seconds as i128; + let nanos = header_time.nanos as i128; + let time_ms = (seconds * 1000) + (nanos / 1_000_000); + + let meta = platform_event_v0::BlockMetadata { + height: request_finalize_block.height, + time_ms: time_ms as u64, + block_id_hash: request_finalize_block.block_id.hash.to_vec(), + }; + + // Number of txs in this block + let tx_count = request_finalize_block.block.data.txs.len() as u32; + + let block_committed = platform_event_v0::BlockCommitted { + meta: Some(meta), + tx_count, + }; + + let event = PlatformEventV0 { + event: Some(platform_event_v0::Event::BlockCommitted(block_committed)), + }; + + event_bus.notify_sync(event); + + Ok(()) +} + +fn publish_state_transition_result_events( + event_bus: &dash_event_bus::event_bus::EventBus, + request_finalize_block: &FinalizeBlockCleanedRequest, +) -> Result<(), Error> { + // Prepare BlockMetadata once + let header_time = request_finalize_block.block.header.time; + let seconds = header_time.seconds as i128; + let nanos = header_time.nanos as i128; + let time_ms = (seconds * 1000) + (nanos / 1_000_000); + + let meta = platform_event_v0::BlockMetadata { + height: request_finalize_block.height, + time_ms: time_ms as u64, + block_id_hash: request_finalize_block.block_id.hash.to_vec(), + }; + + // For each tx in the block, compute hash and emit a StateTransitionResult + for tx in &request_finalize_block.block.data.txs { + let tx_hash = Sha256::digest(tx); + let event = PlatformEventV0 { + event: Some(platform_event_v0::Event::StateTransitionFinalized( + platform_event_v0::StateTransitionFinalized { + meta: Some(meta.clone()), + tx_hash: tx_hash.to_vec(), + }, + )), + }; + event_bus.notify_sync(event); + } + + Ok(()) +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/common/validate_state_transition_identity_signed/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/common/validate_state_transition_identity_signed/v0/mod.rs index 5dc994c950b..31ee6fed406 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/common/validate_state_transition_identity_signed/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/common/validate_state_transition_identity_signed/v0/mod.rs @@ -131,7 +131,6 @@ impl ValidateStateTransitionIdentitySignatureV0<'_> for StateTransition { let partial_identity = match maybe_partial_identity { None => { - // dbg!(bs58::encode(&state_transition.get_owner_id()).into_string()); validation_result.add_error(SignatureError::IdentityNotFoundError( IdentityNotFoundError::new(owner_id), )); diff --git a/packages/rs-drive-abci/src/query/mod.rs b/packages/rs-drive-abci/src/query/mod.rs index 0e161b1ae19..d298ff069cf 100644 --- a/packages/rs-drive-abci/src/query/mod.rs +++ b/packages/rs-drive-abci/src/query/mod.rs @@ -15,6 +15,7 @@ use crate::error::query::QueryError; use dpp::validation::ValidationResult; +pub use service::PlatformFilterAdapter; pub use service::QueryService; /// A query validation result diff --git a/packages/rs-drive-abci/src/query/service.rs b/packages/rs-drive-abci/src/query/service.rs index f5c7dacc4b8..1f68c95f3b8 100644 --- a/packages/rs-drive-abci/src/query/service.rs +++ b/packages/rs-drive-abci/src/query/service.rs @@ -10,6 +10,7 @@ use crate::utils::spawn_blocking_task_with_name_if_supported; use async_trait::async_trait; use dapi_grpc::drive::v0::drive_internal_server::DriveInternal; use dapi_grpc::drive::v0::{GetProofsRequest, GetProofsResponse}; +use dapi_grpc::platform::v0::platform_event_v0::Keepalive; use dapi_grpc::platform::v0::platform_server::Platform as PlatformService; use dapi_grpc::platform::v0::{ BroadcastStateTransitionRequest, BroadcastStateTransitionResponse, GetConsensusParamsRequest, @@ -47,20 +48,38 @@ use dapi_grpc::platform::v0::{ GetTokenPreProgrammedDistributionsResponse, GetTokenStatusesRequest, GetTokenStatusesResponse, GetTokenTotalSupplyRequest, GetTokenTotalSupplyResponse, GetTotalCreditsInPlatformRequest, GetTotalCreditsInPlatformResponse, GetVotePollsByEndDateRequest, GetVotePollsByEndDateResponse, + PlatformEventV0 as PlatformEvent, PlatformSubscriptionRequest, PlatformSubscriptionResponse, WaitForStateTransitionResultRequest, WaitForStateTransitionResultResponse, }; use dapi_grpc::tonic::{Code, Request, Response, Status}; +use dash_event_bus::event_bus::{EventBus, Filter as EventBusFilter}; use dpp::version::PlatformVersion; use std::fmt::Debug; use std::sync::atomic::Ordering; -use std::sync::Arc; +use std::sync::{Arc, Mutex}; use std::thread::sleep; use std::time::Duration; +use tokio::sync::mpsc; +use tokio_stream::wrappers::ReceiverStream; use tracing::Instrument; +const PLATFORM_EVENTS_STREAM_BUFFER: usize = 128; + /// Service to handle platform queries pub struct QueryService { platform: Arc>, + event_bus: EventBus, + /// background worker tasks + workers: Mutex>>, +} + +impl Drop for QueryService { + fn drop(&mut self) { + let mut workers = self.workers.lock().unwrap(); + for handle in workers.drain(..) { + handle.abort(); + } + } } type QueryMethod = fn( @@ -72,8 +91,15 @@ type QueryMethod = fn( impl QueryService { /// Creates new QueryService - pub fn new(platform: Arc>) -> Self { - Self { platform } + pub fn new( + platform: Arc>, + event_bus: EventBus, + ) -> Self { + Self { + platform, + event_bus, + workers: Mutex::new(Vec::new()), + } } async fn handle_blocking_query( @@ -252,6 +278,47 @@ fn respond_with_unimplemented(name: &str) -> Result, Status> { Err(Status::unimplemented("the endpoint is not supported")) } +/// Adapter implementing EventBus filter semantics based on incoming gRPC `PlatformFilterV0`. +#[derive(Clone, Debug)] +pub struct PlatformFilterAdapter { + inner: dapi_grpc::platform::v0::PlatformFilterV0, +} + +impl PlatformFilterAdapter { + /// Create a new adapter wrapping the provided gRPC `PlatformFilterV0`. + pub fn new(inner: dapi_grpc::platform::v0::PlatformFilterV0) -> Self { + Self { inner } + } +} + +impl EventBusFilter for PlatformFilterAdapter { + fn matches(&self, event: &PlatformEvent) -> bool { + use dapi_grpc::platform::v0::platform_event_v0::Event as Evt; + use dapi_grpc::platform::v0::platform_filter_v0::Kind; + if matches!(event.event, Some(Evt::Keepalive(_))) { + return true; + } + match self.inner.kind.as_ref() { + None => false, + Some(Kind::All(_)) => true, + Some(Kind::BlockCommitted(_)) => { + matches!(event.event, Some(Evt::BlockCommitted(_))) + } + Some(Kind::StateTransitionResult(filter)) => { + // If tx_hash is provided, match only that hash; otherwise match any STR + if let Some(Evt::StateTransitionFinalized(ref r)) = event.event { + match &filter.tx_hash { + Some(h) => r.tx_hash == *h, + None => true, + } + } else { + false + } + } + } + } +} + #[async_trait] impl PlatformService for QueryService { async fn broadcast_state_transition( @@ -802,8 +869,162 @@ impl PlatformService for QueryService { ) .await } -} + type subscribePlatformEventsStream = + ReceiverStream>; + + async fn subscribe_platform_events( + &self, + request: Request, + ) -> Result, Status> { + use dapi_grpc::platform::v0::platform_subscription_request::Version as RequestVersion; + use dapi_grpc::platform::v0::platform_subscription_response::{ + PlatformSubscriptionResponseV0, Version as ResponseVersion, + }; + + let request = request.into_inner(); + let req_v0 = match request.version { + Some(RequestVersion::V0(v0)) => v0, + _ => { + tracing::warn!("subscribe_platform_events: unsupported request version"); + return Err(Status::invalid_argument("unsupported request version")); + } + }; + + let keepalive = req_v0.keepalive_secs; + let filter = req_v0.filter.unwrap_or_default(); + if filter.kind.is_none() { + tracing::warn!("subscribe_platform_events: filter kind is not specified"); + return Err(Status::invalid_argument("filter kind is not specified")); + } + + let keepalive_duration = if keepalive == 0 { + None + } else if !(25..=300).contains(&keepalive) { + tracing::warn!( + interval = keepalive, + "subscribe_platform_events: keepalive interval out of range" + ); + return Err(Status::invalid_argument( + "keepalive interval must be between 25 and 300 seconds", + )); + } else { + Some(Duration::from_secs(keepalive as u64)) + }; + + let subscription_id = rand::random::(); + tracing::trace!( + subscription_id = %subscription_id, + "subscribe_platform_events: generated subscription id" + ); + + let subscription = self + .event_bus + .add_subscription(PlatformFilterAdapter::new(filter)) + .await; + + let (downstream_tx, rx) = mpsc::channel::>( + PLATFORM_EVENTS_STREAM_BUFFER, + ); + + let handshake_tx = downstream_tx.clone(); + { + let handshake = PlatformSubscriptionResponse { + version: Some(ResponseVersion::V0(PlatformSubscriptionResponseV0 { + subscription_id, + event: None, + })), + }; + + if let Err(err) = handshake_tx.send(Ok(handshake)).await { + tracing::debug!( + subscription_id = %subscription_id, + error = %err, + "subscribe_platform_events: client disconnected before handshake" + ); + return Err(Status::cancelled("client disconnected before handshake")); + } + } + + let worker = tokio::task::spawn(async move { + let handle = subscription; + + loop { + // next_item is Some(Ok(event)) when an event is received + // next_item is Some(Err(e)) when keepalive timeout elapses + // next_item is None when the stream is closed + let next_item = if let Some(duration) = keepalive_duration { + match tokio::time::timeout(duration, handle.recv()).await { + Ok(Some(event)) => Some(Ok(event)), + Ok(None) => None, + Err(e) => Some(Err(e)), + } + } else { + handle.recv().await.map(Ok) + }; + + match next_item { + Some(Ok(event)) => { + let response = PlatformSubscriptionResponse { + version: Some(ResponseVersion::V0(PlatformSubscriptionResponseV0 { + subscription_id, + event: Some(event), + })), + }; + + if downstream_tx.send(Ok(response)).await.is_err() { + tracing::debug!( + subscription_id = %subscription_id, + "subscribe_platform_events: client stream closed" + ); + break; + } + } + Some(Err(_)) => { + // timeout elapsed, emit keepalive event + let keepalive_event = PlatformEvent { + event: Some( + dapi_grpc::platform::v0::platform_event_v0::Event::Keepalive( + Keepalive {}, + ), + ), + }; + + let response = PlatformSubscriptionResponse { + version: Some(ResponseVersion::V0(PlatformSubscriptionResponseV0 { + subscription_id, + event: Some(keepalive_event), + })), + }; + + if downstream_tx.send(Ok(response)).await.is_err() { + tracing::debug!( + subscription_id = %subscription_id, + "subscribe_platform_events: client stream closed" + ); + break; + } + } + None => break, + } + } + + tracing::debug!( + subscription_id = %subscription_id, + "subscribe_platform_events: event stream completed" + ); + }); + + { + let mut workers = self.workers.lock().unwrap(); + workers.push(worker); + // Clean up finished workers to prevent memory leak + workers.retain(|h| !h.is_finished()); + } + + Ok(Response::new(ReceiverStream::new(rx))) + } +} #[async_trait] impl DriveInternal for QueryService { async fn get_proofs( diff --git a/packages/rs-drive-abci/src/server.rs b/packages/rs-drive-abci/src/server.rs index 3baf33f5c2a..32b0b76acf1 100644 --- a/packages/rs-drive-abci/src/server.rs +++ b/packages/rs-drive-abci/src/server.rs @@ -20,7 +20,13 @@ pub fn start( config: PlatformConfig, cancel: CancellationToken, ) { - let query_service = Arc::new(QueryService::new(Arc::clone(&platform))); + // Create a shared EventBus for platform events (filters adapted from gRPC filters) + let event_bus = dash_event_bus::event_bus::EventBus::< + dapi_grpc::platform::v0::PlatformEventV0, + crate::query::PlatformFilterAdapter, + >::new(); + + let query_service = Arc::new(QueryService::new(Arc::clone(&platform), event_bus.clone())); let drive_internal = Arc::clone(&query_service); @@ -70,7 +76,7 @@ pub fn start( // Start blocking ABCI socket-server that process consensus requests sequentially - let app = ConsensusAbciApplication::new(platform.as_ref()); + let app = ConsensusAbciApplication::new(platform.as_ref(), event_bus.clone()); let server = tenderdash_abci::ServerBuilder::new(app, &config.abci.consensus_bind_address) .with_cancel_token(cancel.clone()) diff --git a/packages/rs-drive-abci/tests/strategy_tests/main.rs b/packages/rs-drive-abci/tests/strategy_tests/main.rs index 16173c723fe..1cb5590f7a3 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/main.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/main.rs @@ -198,6 +198,54 @@ mod tests { ); } + // Verify the in-process EventBus subscription delivers a published event + #[tokio::test(flavor = "multi_thread", worker_threads = 1)] + async fn event_bus_subscribe_all_and_receive() { + use dapi_grpc::platform::v0::platform_event_v0; + use dapi_grpc::platform::v0::platform_filter_v0::Kind as FilterKind; + use dapi_grpc::platform::v0::{PlatformEventV0, PlatformFilterV0}; + use drive_abci::abci::app::FullAbciApplication; + use drive_abci::query::PlatformFilterAdapter; + + let config = PlatformConfig::default(); + let platform = TestPlatformBuilder::new() + .with_config(config.clone()) + .build_with_mock_rpc(); + + // Create ABCI app and subscribe to all events + let abci_application = FullAbciApplication::new(&platform.platform); + let filter = PlatformFilterV0 { + kind: Some(FilterKind::All(Default::default())), + }; + let handle = abci_application + .event_bus + .add_subscription(PlatformFilterAdapter::new(filter)) + .await; + + // Publish a simple BlockCommitted event + let meta = platform_event_v0::BlockMetadata { + height: 1, + time_ms: 123, + block_id_hash: vec![0u8; 32], + }; + let evt = PlatformEventV0 { + event: Some(platform_event_v0::Event::BlockCommitted( + platform_event_v0::BlockCommitted { + meta: Some(meta), + tx_count: 0, + }, + )), + }; + abci_application.event_bus.notify_sync(evt.clone()); + + // Await delivery + let received = tokio::time::timeout(std::time::Duration::from_secs(1), handle.recv()) + .await + .expect("timed out waiting for event"); + + assert_eq!(received, Some(evt)); + } + #[test] fn run_chain_stop_and_restart() { let strategy = NetworkStrategy { diff --git a/packages/rs-sdk/Cargo.toml b/packages/rs-sdk/Cargo.toml index 84f3e955382..82ad279799d 100644 --- a/packages/rs-sdk/Cargo.toml +++ b/packages/rs-sdk/Cargo.toml @@ -42,6 +42,7 @@ lru = { version = "0.12.5", optional = true } bip37-bloom-filter = { git = "https://github.com/dashpay/rs-bip37-bloom-filter", branch = "develop" } zeroize = { version = "1.8", features = ["derive"] } + [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio = { version = "1.40", features = ["macros", "time", "rt-multi-thread"] } @@ -51,8 +52,8 @@ js-sys = "0.3.64" [dev-dependencies] rs-dapi-client = { path = "../rs-dapi-client" } drive-proof-verifier = { path = "../rs-drive-proof-verifier" } +tokio = { version = "1.40", features = ["macros", "rt-multi-thread", "signal"] } rs-sdk-trusted-context-provider = { path = "../rs-sdk-trusted-context-provider" } -tokio = { version = "1.40", features = ["macros", "rt-multi-thread"] } base64 = { version = "0.22.1" } tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } dpp = { path = "../rs-dpp", default-features = false, features = [ @@ -73,6 +74,7 @@ default = [ "offline-testing", "dapi-grpc/client", "token_reward_explanations", + "subscriptions", ] spv-client = [ "core_spv", @@ -81,7 +83,6 @@ spv-client = [ "core_bincode", "core_key_wallet_bincode", ] - mocks = [ "dep:serde", "dep:serde_json", @@ -98,6 +99,8 @@ mocks = [ "zeroize/serde", ] +subscriptions = [] + # Run integration tests using test vectors from `tests/vectors/` instead of connecting to live Dash Platform. # # This feature is enabled by default to allow testing without connecting to the Dash Platform as diff --git a/packages/rs-sdk/examples/platform_events.rs b/packages/rs-sdk/examples/platform_events.rs new file mode 100644 index 00000000000..6086f40cde9 --- /dev/null +++ b/packages/rs-sdk/examples/platform_events.rs @@ -0,0 +1,220 @@ +fn main() { + #[cfg(feature = "subscriptions")] + subscribe::main(); + #[cfg(not(feature = "subscriptions"))] + { + println!("Enable the 'subscriptions' feature to run this example."); + } +} + +#[cfg(feature = "subscriptions")] +mod subscribe { + + use dapi_grpc::platform::v0::platform_event_v0::Event as PlatformEvent; + use dapi_grpc::platform::v0::platform_filter_v0::{ + Kind as FilterKind, StateTransitionResultFilter, + }; + use dapi_grpc::platform::v0::platform_subscription_response::Version as ResponseVersion; + use dapi_grpc::platform::v0::{PlatformFilterV0, PlatformSubscriptionResponse}; + use dapi_grpc::tonic::Streaming; + use dash_sdk::platform::fetch_current_no_parameters::FetchCurrent; + use dash_sdk::platform::types::epoch::Epoch; + use dash_sdk::{Sdk, SdkBuilder}; + use futures::StreamExt; + use rs_dapi_client::{Address, AddressList}; + use serde::Deserialize; + use std::str::FromStr; + use tracing::info; + use tracing_subscriber::EnvFilter; + use zeroize::Zeroizing; + + #[derive(Debug, Deserialize)] + pub struct Config { + // Aligned with rs-sdk/tests/fetch/config.rs + #[serde(default)] + pub platform_host: String, + #[serde(default)] + pub platform_port: u16, + #[serde(default)] + pub platform_ssl: bool, + + #[serde(default)] + pub core_host: Option, + #[serde(default)] + pub core_port: u16, + #[serde(default)] + pub core_user: String, + #[serde(default)] + pub core_password: Zeroizing, + + #[serde(default)] + pub platform_ca_cert_path: Option, + + // Optional hex-encoded tx hash to filter STR events + #[serde(default)] + pub state_transition_tx_hash_hex: Option, + } + + impl Config { + const CONFIG_PREFIX: &'static str = "DASH_SDK_"; + fn load() -> Self { + let path: String = env!("CARGO_MANIFEST_DIR").to_owned() + "/tests/.env"; + let _ = dotenvy::from_path(&path); + envy::prefixed(Self::CONFIG_PREFIX) + .from_env() + .expect("configuration error: missing DASH_SDK_* vars; see rs-sdk/tests/.env") + } + } + + #[tokio::main(flavor = "multi_thread", worker_threads = 2)] + pub(super) async fn main() { + tracing_subscriber::fmt() + .with_env_filter(EnvFilter::try_from_default_env().unwrap_or(EnvFilter::new("info"))) + .init(); + + let config = Config::load(); + let sdk = setup_sdk(&config); + let address = sdk + .address_list() + .get_live_address() + .expect("no live DAPI address"); + // sanity check - fetch current epoch to see if connection works + let epoch = Epoch::fetch_current(&sdk).await.expect("fetch epoch"); + tracing::info!( + ?address, + "Connection established; current epoch: {:?}", + epoch + ); + + // Subscribe to BlockCommitted only + let filter_block = PlatformFilterV0 { + kind: Some(FilterKind::BlockCommitted(Default::default())), + }; + let block_stream = sdk + .subscribe_platform_events(filter_block) + .await + .expect("subscribe block_committed"); + // Subscribe to StateTransitionFinalized; optionally filter by tx hash if provided + let tx_hash_bytes = config + .state_transition_tx_hash_hex + .as_deref() + .and_then(|s| hex::decode(s).ok()); + let filter_str = PlatformFilterV0 { + kind: Some(FilterKind::StateTransitionResult( + StateTransitionResultFilter { + tx_hash: tx_hash_bytes, + }, + )), + }; + let str_stream = sdk + .subscribe_platform_events(filter_str) + .await + .expect("subscribe state_transition_result"); + + // Subscribe to All events as a separate stream (demonstration) + let filter_all = PlatformFilterV0 { + kind: Some(FilterKind::All(Default::default())), + }; + let all_stream = sdk + .subscribe_platform_events(filter_all) + .await + .expect("subscribe all"); + + info!("Subscriptions created. Waiting for events... (Ctrl+C to exit)"); + + let block_worker = tokio::spawn(worker(block_stream, "BlockCommitted")); + let str_worker = tokio::spawn(worker(str_stream, "StateTransitionResult")); + let all_worker = tokio::spawn(worker(all_stream, "AllEvents")); + + // Handle Ctrl+C to remove subscriptions and exit + let abort_block = block_worker.abort_handle(); + let abort_str = str_worker.abort_handle(); + let abort_all = all_worker.abort_handle(); + tokio::spawn(async move { + tokio::signal::ctrl_c().await.ok(); + info!("Ctrl+C received, stopping..."); + abort_block.abort(); + abort_str.abort(); + abort_all.abort(); + }); + + // Wait for workers to finish + let _ = tokio::join!(block_worker, str_worker, all_worker); + } + + async fn worker(mut stream: Streaming, label: &str) { + let mut last_keepalive = std::time::Instant::now(); + while let Some(message) = stream.next().await { + match message { + Ok(response) => { + if let Some(ResponseVersion::V0(v0)) = response.version { + let sub_id = v0.subscription_id; + if let Some(event_v0) = v0.event { + if let Some(event) = event_v0.event { + match event { + PlatformEvent::BlockCommitted(bc) => { + if let Some(meta) = bc.meta { + info!( + "{label}: id={sub_id} height={} time_ms={} tx_count={} block_id_hash=0x{}", + meta.height, + meta.time_ms, + bc.tx_count, + hex::encode(meta.block_id_hash) + ); + } + } + PlatformEvent::StateTransitionFinalized(r) => { + if let Some(meta) = r.meta { + println!( + "{label}: id={sub_id} height={} tx_hash=0x{} block_id_hash=0x{}", + meta.height, + hex::encode(r.tx_hash), + hex::encode(meta.block_id_hash) + ); + } + } + PlatformEvent::Keepalive(_) => { + let elapsed = last_keepalive.elapsed().as_secs(); + info!("{label}: id={sub_id} KeepAlive received after {elapsed} seconds"); + last_keepalive = std::time::Instant::now(); + } + } + } + } + } + } + Err(status) => { + eprintln!("{label}: stream error {status}"); + break; + } + } + } + println!("{label}: stream closed"); + } + + fn setup_sdk(config: &Config) -> Sdk { + let scheme = if config.platform_ssl { "https" } else { "http" }; + let host = &config.platform_host; + let address = Address::from_str(&format!("{}://{}:{}", scheme, host, config.platform_port)) + .expect("parse uri"); + tracing::debug!("Using DAPI address: {}", address.uri()); + let core_host = config.core_host.as_deref().unwrap_or(host); + + #[allow(unused_mut)] + let mut builder = SdkBuilder::new(AddressList::from_iter([address])).with_core( + core_host, + config.core_port, + &config.core_user, + &config.core_password, + ); + + #[cfg(not(target_arch = "wasm32"))] + if let Some(cert) = &config.platform_ca_cert_path { + builder = builder + .with_ca_certificate_file(cert) + .expect("load CA cert"); + } + + builder.build().expect("cannot build sdk") + } +} diff --git a/packages/rs-sdk/src/error.rs b/packages/rs-sdk/src/error.rs index cb1b79dd7e6..40d19532097 100644 --- a/packages/rs-sdk/src/error.rs +++ b/packages/rs-sdk/src/error.rs @@ -38,6 +38,9 @@ pub enum Error { /// DAPI client error, for example, connection error #[error("Dapi client error: {0}")] DapiClientError(rs_dapi_client::DapiClientError), + /// Subscription error + #[error("Subscription error: {0}")] + SubscriptionError(String), #[cfg(feature = "mocks")] /// DAPI mocks error #[error("Dapi mocks error: {0}")] diff --git a/packages/rs-sdk/src/platform.rs b/packages/rs-sdk/src/platform.rs index e25dd68515a..aea2510fd4c 100644 --- a/packages/rs-sdk/src/platform.rs +++ b/packages/rs-sdk/src/platform.rs @@ -18,6 +18,8 @@ pub mod types; pub mod documents; pub mod dpns_usernames; +#[cfg(feature = "subscriptions")] +pub mod events; pub mod group_actions; pub mod tokens; diff --git a/packages/rs-sdk/src/platform/events.rs b/packages/rs-sdk/src/platform/events.rs new file mode 100644 index 00000000000..b3dcc1ef4d9 --- /dev/null +++ b/packages/rs-sdk/src/platform/events.rs @@ -0,0 +1,62 @@ +use dapi_grpc::platform::v0::platform_client::PlatformClient; +use dapi_grpc::platform::v0::platform_subscription_request::{ + PlatformSubscriptionRequestV0, Version as RequestVersion, +}; +use dapi_grpc::platform::v0::{ + PlatformFilterV0, PlatformSubscriptionRequest, PlatformSubscriptionResponse, +}; +use dapi_grpc::tonic::{Request, Streaming}; +use rs_dapi_client::transport::{create_channel, PlatformGrpcClient}; +use rs_dapi_client::{RequestSettings, Uri}; +use std::time::Duration; +pub type EventSubscriptionId = u64; +impl crate::Sdk { + /// Subscribe to Platform events using the gRPC streaming API. + /// + /// Returns the server-assigned subscription id alongside the streaming response. + pub async fn subscribe_platform_events( + &self, + filter: PlatformFilterV0, + ) -> Result, crate::Error> { + let address = self + .address_list() + .get_live_address() + .ok_or_else(|| crate::Error::SubscriptionError("no live DAPI address".to_string()))?; + let uri: Uri = address.uri().clone(); + + tracing::debug!( + address = ?uri, + "creating gRPC client for platform events subscription" + ); + let settings = self + .dapi_client_settings + .override_by(RequestSettings { + connect_timeout: Some(Duration::from_secs(5)), + timeout: Some(Duration::from_secs(3600)), + ..Default::default() + }) + .finalize(); + let channel = create_channel(uri, Some(&settings)) + .map_err(|e| crate::Error::SubscriptionError(format!("channel: {e}")))?; + let mut client: PlatformGrpcClient = PlatformClient::new(channel); + + // Keepalive should be less than the timeout to avoid unintentional disconnects. + let keepalive_secs = (settings.timeout.saturating_sub(Duration::from_secs(5))) + .as_secs() + .clamp(25, 300) as u32; + let request = PlatformSubscriptionRequest { + version: Some(RequestVersion::V0(PlatformSubscriptionRequestV0 { + filter: Some(filter), + keepalive_secs, + })), + }; + + let response = client + .subscribe_platform_events(Request::new(request)) + .await + .map_err(|e| crate::Error::SubscriptionError(format!("subscribe: {}", e)))? + .into_inner(); + + Ok(response) + } +} diff --git a/packages/rs-sdk/src/sdk.rs b/packages/rs-sdk/src/sdk.rs index ed0e13374f8..50896f09f15 100644 --- a/packages/rs-sdk/src/sdk.rs +++ b/packages/rs-sdk/src/sdk.rs @@ -43,8 +43,11 @@ use std::sync::atomic::Ordering; use std::sync::{atomic, Arc}; #[cfg(not(target_arch = "wasm32"))] use std::time::{SystemTime, UNIX_EPOCH}; +use tokio::sync::Mutex; #[cfg(feature = "mocks")] -use tokio::sync::{Mutex, MutexGuard}; +use tokio::sync::MutexGuard; +#[cfg(feature = "subscriptions")] +use tokio::task::JoinSet; use tokio_util::sync::{CancellationToken, WaitForCancellationFuture}; use zeroize::Zeroizing; @@ -140,6 +143,10 @@ pub struct Sdk { #[cfg(feature = "mocks")] dump_dir: Option, + + #[cfg(feature = "subscriptions")] + /// Set of worker tasks spawned by the SDK + workers: Arc>>, } impl Clone for Sdk { fn clone(&self) -> Self { @@ -154,6 +161,8 @@ impl Clone for Sdk { metadata_height_tolerance: self.metadata_height_tolerance, metadata_time_tolerance_ms: self.metadata_time_tolerance_ms, dapi_client_settings: self.dapi_client_settings, + #[cfg(feature = "subscriptions")] + workers: Arc::clone(&self.workers), #[cfg(feature = "mocks")] dump_dir: self.dump_dir.clone(), } @@ -1076,6 +1085,8 @@ impl SdkBuilder { metadata_last_seen_height: Arc::new(atomic::AtomicU64::new(0)), metadata_height_tolerance: self.metadata_height_tolerance, metadata_time_tolerance_ms: self.metadata_time_tolerance_ms, + #[cfg(feature = "subscriptions")] + workers: Default::default(), #[cfg(feature = "mocks")] dump_dir: self.dump_dir, }; @@ -1144,6 +1155,8 @@ impl SdkBuilder { metadata_last_seen_height: Arc::new(atomic::AtomicU64::new(0)), metadata_height_tolerance: self.metadata_height_tolerance, metadata_time_tolerance_ms: self.metadata_time_tolerance_ms, + #[cfg(feature = "subscriptions")] + workers: Default::default(), }; let mut guard = mock_sdk.try_lock().expect("mock sdk is in use by another thread and cannot be reconfigured"); guard.set_sdk(sdk.clone()); @@ -1157,6 +1170,10 @@ impl SdkBuilder { None => return Err(Error::Config("Mock mode is not available. Please enable `mocks` feature or provide address list.".to_string())), }; + // let sdk_clone = sdk.clone(); + // start subscribing to events + // crate::sync::block_on(async move { sdk_clone.get_event_mux().await })??; + Ok(sdk) } } diff --git a/packages/rs-sdk/tests/fetch/config.rs b/packages/rs-sdk/tests/fetch/config.rs index a7d07cd4962..6fa7082b301 100644 --- a/packages/rs-sdk/tests/fetch/config.rs +++ b/packages/rs-sdk/tests/fetch/config.rs @@ -47,6 +47,7 @@ pub struct Config { /// When platform_ssl is true, use the PEM-encoded CA certificate from provided absolute path to verify the server certificate. #[serde(default)] + #[allow(unused)] pub platform_ca_cert_path: Option, /// Directory where all generated test vectors will be saved. diff --git a/packages/rs-sdk/tests/fetch/mod.rs b/packages/rs-sdk/tests/fetch/mod.rs index bb16b2a04fa..6ddfe751f71 100644 --- a/packages/rs-sdk/tests/fetch/mod.rs +++ b/packages/rs-sdk/tests/fetch/mod.rs @@ -24,6 +24,8 @@ mod identity; mod identity_contract_nonce; mod mock_fetch; mod mock_fetch_many; +#[cfg(feature = "subscriptions")] +mod platform_events; mod prefunded_specialized_balance; mod protocol_version_vote_count; mod protocol_version_votes; diff --git a/packages/rs-sdk/tests/fetch/platform_events.rs b/packages/rs-sdk/tests/fetch/platform_events.rs new file mode 100644 index 00000000000..9a090e7ab53 --- /dev/null +++ b/packages/rs-sdk/tests/fetch/platform_events.rs @@ -0,0 +1,61 @@ +#![cfg(all( + feature = "network-testing", + feature = "subscriptions", + not(feature = "offline-testing") +))] + +use super::{common::setup_logs, config::Config}; +use dapi_grpc::platform::v0::platform_subscription_response::Version as ResponseVersion; +use dapi_grpc::platform::v0::PlatformFilterV0; +use tokio::time::{timeout, Duration}; + +#[tokio::test(flavor = "multi_thread", worker_threads = 1)] +async fn test_platform_events_subscribe_stream_opens() { + setup_logs(); + + setup_logs(); + + let cfg = Config::new(); + let sdk = cfg.setup_api("document_read").await; + + let filter = PlatformFilterV0 { + kind: Some(dapi_grpc::platform::v0::platform_filter_v0::Kind::All(true)), + }; + let mut subscription = sdk + .subscribe_platform_events(filter) + .await + .expect("subscribe should succeed"); + + let handshake = timeout(Duration::from_secs(1), subscription.message()) + .await + .expect("handshake should arrive promptly") + .expect("handshake message") + .expect("handshake payload"); + + if let Some(ResponseVersion::V0(ref v0)) = handshake.version { + assert!( + !v0.client_subscription_id.is_empty(), + "handshake must include subscription id" + ); + + tracing::debug!( + ?handshake, + "Received handshake with subscription id: {}", + v0.client_subscription_id + ); + + assert!( + v0.event.is_none(), + "handshake should not include an event payload" + ); + } else { + panic!("unexpected handshake response version"); + } + + // Ensure the stream stays open (no immediate event) by expecting a timeout when waiting for the next message. + let wait_result = timeout(Duration::from_millis(250), subscription.message()).await; + assert!( + wait_result.is_err(), + "expected to time out waiting for initial platform event" + ); +} diff --git a/packages/wasm-drive-verify/tests/fuzz_tests.rs b/packages/wasm-drive-verify/tests/fuzz_tests.rs index 84a55917928..615c09fb4cb 100644 --- a/packages/wasm-drive-verify/tests/fuzz_tests.rs +++ b/packages/wasm-drive-verify/tests/fuzz_tests.rs @@ -7,7 +7,6 @@ use wasm_bindgen::JsValue; use wasm_bindgen_test::*; mod common; -use common::*; wasm_bindgen_test_configure!(run_in_browser); @@ -71,7 +70,7 @@ fn fuzz_document_query_with_nested_structures() { // Test with deeply nested query objects for depth in [1, 5, 10, 50] { - let mut query = Object::new(); + let query = Object::new(); // Create nested where clauses let where_array = Array::new(); diff --git a/packages/wasm-sdk/src/error.rs b/packages/wasm-sdk/src/error.rs index a2b2e264462..b46a6220e3e 100644 --- a/packages/wasm-sdk/src/error.rs +++ b/packages/wasm-sdk/src/error.rs @@ -169,6 +169,12 @@ impl From for WasmSdkError { Cancelled(msg) => Self::new(WasmSdkErrorKind::Cancelled, msg, None, retriable), StaleNode(e) => Self::new(WasmSdkErrorKind::StaleNode, e.to_string(), None, retriable), StateTransitionBroadcastError(e) => WasmSdkError::from(e), + SubscriptionError(msg) => Self::new( + WasmSdkErrorKind::DapiClientError, + format!("Subscription error: {}", msg), + None, + retriable, + ), } } }